您的位置:首页 > Web前端 > JavaScript

javascript 学习总结(八)属性定义方法

2015-11-02 09:41 711 查看
1、defineProperty

/*
定义(Definition).定义属性需要使用相应的函数,比如:
Object.defineProperty(obj, "prop", propDesc)
如果obj没有prop这个自身属性,则该函数的作用是给obj添加一个自身属性prop并赋值,
参数propDesc指定了该属性拥有的特性(可写性,可枚举性等).
如果obj已经有了prop这个自身属性,则该函数的作用是修改这个已有属性的特性,当然也包括它的属性值.
*/
var book = {
_year: 2004,
edition: 1
};

Object.defineProperty(book, "year", {
get: function(){
return this._year;
},
set: function(newValue){

if (newValue > 2004) {
this._year = newValue;
this.edition += newValue - 2004;

}
}
});

book.year = 2005;
alert(book.edition);   //2


2、__defineSetter__ 和 __defineGetter__

var book = {
_year: 2004,
edition: 1
};

//legacy accessor support
book.__defineGetter__("year", function(){
return this._year;
});

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

book.year = 2005;
alert(book.edition);   //2


参考网址:

[译]JavaScript中的属性:定义和赋值的区别

/article/4811663.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: