Object.defineProperty(オブジェクト,"オブジェクト名",ディスクリプタ);とすると、
明示的にオブジェクトの持つプロパティの設定を宣言できる。
var obj = {};
Object.defineProperty(obj,"x",{
value: 777,
writable: true, //trueだと、書き込み可能。(例)obj.x = 100;をしてから値を表示すると、trueの場合100となり、falseの場合777が表示。
enumerable: true, //trueだと、列挙可能。 (例)for(hoge in obj) {alert(obj);}とすると、trueの場合はxが出るが、falseの場合何もでない。
configurable: true //trueだと、変更削除可能。(例)delete obj.x;をしてから値を表示すると、trueの場合undefinedとなり、falseの場合777が表示。
});
getter,setterのようにも出来る。ただし、この時valueとwritableは同席できない。
var obj = {};
var data = 55;;
Object.defineProperty(obj,"x",{
get: function(){ return data;},
set: function(setdata){ data = setdata;},
enumerable: true,
configurable: true
});
最終更新:2014年02月11日 14:42