Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。
对象里目前存在属性描述符有两种主要形式:数据描述符和存取描述符。
数据描述符是一个具有值的属性,该值可以是可写的,也可以是不可写的。
存取描述符是由getter函数和setter函数所描述的属性。
var value Object.defineProperty(obj,"id",{ configurable:false, //当为true时,该属性的描述符能够被改变,同时该属性也可以从对应的对象上删除。 enumerable:false,//该属性为true时,该属性才会出现在对象的枚举属性中。 value:'',//默认为false writable:false,//当为true时,上面的value才能被赋值运算符改变。 get(){ console.log("取值"); }, set(x){ value=x;s console.log("设置"); } })