问题:想要容易的给一个对象添加一个新的属性,但是又想要以能够更多地控制此过程的方式来完成。
解决方案:使用 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
通过定义一个新的属性来扩展对象
最新推荐文章于 2023-05-12 10:00:21 发布