您的位置:首页 > 其它

通过定义一个新的属性来扩展对象

2017-08-18 20:23 405 查看
问题:想要容易的给一个对象添加一个新的属性,但是又想要以能够更多地控制此过程的方式来完成。

解决方案:使用 defineProperty()方法来添加该属性

var data={};

Object.defineProperty(data,'type',{

value:'primary',

enumerable:true

});

console.log(data.type);//"primary"

data.type = 'seconddary';

console.log(data.type);//"primary"

Object.defineProperty(data,'id',{

value:1,

writable:true

});

console.log(data.id);//1

data.id = 300;

console.log(data.id);//300

for(prop in data){

console.log(prop);//type

}


+ configurable:默认为false,控制属性描述符是否可以修改

+ writable:默认是false,控制属性的值是否可以通过赋值来修改

+ value:该属性的初始值

+ get:默认为undefined,属性的getter

+ set:默认是undefined,属性的setter
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐