JSオブジェクトのアクセス属性setter getter関数

724 ワード

アクセス属性には数値が含まれていません. ,setterとgetter関数を含む
var book={
_year:2004,  //             
edition:1
};

//IE9+,Firefox4+,Safari5+,Opera12+,Chrome

Object.defineProperty(book,"year",{
get: function(){
return this._year;
},
set:function(newValue){
if(newValue>2004){
this._year=newVlaue);
this.edition +=newVlaue -2004;
}
});

//                

book._defineGetter_("year",function(){
return this._year;});
book._defineSetter_("year",function(newValue){
if(newValue>2004){
this._year=newVlaue);
this.edition +=newVlaue -2004;
}
});

book.year=2005;
alert(book.edition);  //2
オブジェクトに複数の属性Object.degineProperties(){book,{複数の属性}を定義します.
属性特性Object.getOwn PropertyDescriptorを読み込みます.