赞
踩
Object.defineProperty方法的作用
Object.defineProperty() 定义对象中新属性或修改原有的属性。
语法:
Object.defineProperty(obj, prop,descriptor)
obj:必需。目标对象
prop:必需。需定义或修改的属性的名字
descriptor:必需。目标属性所拥有的特性
Object.defineProperty() 第三个参数 descriptor 说明:以对象形式 { } 书写
value: 设置属性的值 默认为undefined
writable: 值是否可以重写。true | false 默认为false
enumerable: 目标属性是否可以被枚举。true | false 默认为 false
configurable: 目标属性是否可以被删除或是否可以再次修改特性 true | false 默认为false
例如:
var obj = { id:1, pname:'小米', price:1999 }; //1、以前增加、修改对象属性的方法 // obj.num = 1000; //新增 // obj.price = 99; //修改 //2、Object.defineProperty() 定义属性或修改原有属性 //新增 Object.defineProperty(obj, 'num', { value:1000 }); //修改 Object.defineProperty(obj, 'price', { value:99 }); Object.defineProperty(obj, 'id', { //如果只为 false 不允许修改这个属性值 默认值也是false writable:false }) obj.id = 10; //修改失败 //新增不可枚举的地址属性 Object.defineProperty(obj, 'address', { value:'武汉市武昌区', writable:false, enumerable:false, //enumerable如果值为false 则不允许遍历 默认值是false configurable:false // configurable:false 表示不允许删除和修改第三个参数里面的特性 默认值是true }); delete obj.address; //删除失败 delete obj.pname; //删除失败 console.log(obj); console.log(Object.keys(obj));
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。