Object.defineProperty()

语法:

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()会报错。

你可能感兴趣的:(Object.defineProperty())