Object.defineProperty()
方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。
语法:
Object.defineProperty(obj, prop, descriptor)
参数:
obj
要在其上定义属性的对象。
prop
要定义或修改的属性的名称。
descriptor
将被定义或修改的属性描述符。
value:属性值
writable:是否可写
enumerable:是否可枚举
Configurable:表示能否通过delete删除属性从而重新定义属性
var p = {name: 'zxr'};
Object.defineProperty(p,'name',{
configurable: false,
enumerable: true,
writable: false
});
Object.defineProperties(对象, 属性); //可以定义修改多个属性
var o=new Object();
Object.defineProperties(o,{
a:{value:100,
writable:false //是否可写
},
b:{
value:200
},
h:{
get:function(){
return 180;
},
set:function(val){
alert(val);
}
}
});
alert(o.b); //200
alert(o.h); //输出180
o.h=123; //输出123(值一变化就触发set函数)