Object.defineProperty()
2019-01-02 本文已影响0人
风过留香_3356
语法:
Object.defineProperty(obj,'name',{
value:"hello", //该对象的‘name’所对应的value值
writable:false,//是否可被重新写入
enumerable:false,//是否可以被枚举
configurable:false//是否可以被删除
})
//obj 是指给那个对象设置Object.defineProperty();
//'name' 是指obj的一个属性设置
//还可设置getter和setter存取器
Object.defineProperty(obj,"newKey",{
get:function (){} | undefined,
set:function (value){} | undefined
configurable: true | false
enumerable: true | false
});
要点
- 当有get 和 set时,就只能设置configurable 和 enumerable
- 当给一个对象设置Object.defineProperty()时下面几个默认为false
configurable:true | false,
enumerable:true | false,
writable:true | false
给对象设置Object.defineProperty(),这个对象就不能被字符串模板解析,渲染到视图会是undefined
在ie8下只能在DOM对象上使用,尝试在原生的对象使用 Object.defineProperty()会报错。