Object.defineProperty方法
定义对象中新属性或修改原有的属性
Objcet.defineProperty(obj,prop,descriptor)
- obj:必须,目标对象
- prop:必需,需定义或修改的属性的名字
- descriptor:必需,目标属性所拥有的特性
看一下以前添加和修改属性的方式
var obj={
id=1;
pname:nannan;
}
obj.num=1000;//增加
obj.pname=litternannan;//修改
console.log(obj);
换个方法
第三属性的说明(要用花括号来写)
- value:设置属性的值,默认为undefined;
- writable:值是否可以重写,true/false默认为false;
- enumberable目标属性是否可以被枚举(遍历),默认为false;
- configurable:目标属性是否可以被删除或是否可以再次修改特性true/flase,默认可以被删除
- **这里要注意:configurable一旦别设置成false不允许被删除整个属性,不允许修改第三个参数里(除了writable)的特性
object,defineProtype(obj,'num'{
value:1000,
enumerble:true,
});
object.defineProtype(obj.'id'{
writable:false,
});
obj.id=2;
console.log(obj)//id=1,不能被修改