Object.defineProperty(修改的对象,改变对象键名,数据属性)
参数一:比如我们要改变person对象
参数二:改变person对象的name值,person没有这个键名,则增加
参数三:configurable:不可删除这个属性(delete)
writable:不可修改这个值(person.name=xxx)
enumerable:表示这个属性是否可以for-in循环返回
value:返回值。默认undefined
var person ={}
Object.defineProperty(person,'name',{
writable:false,
configurable:false,
enumerable:false,
value:'nike',
})
console.log(person.name);//nike
person.name.delete
console.log(person.name);//nike
person.name='admin'
console.log(person.name);//nike
以上结果与一下结果相同
开启Object.defineProperty里的所有数据属性都为false
Object.defineProperty(person,'name',{
value:'nike',
})
console.log(person.name);//nike
person.name.delete
console.log(person.name);//nike
person.name='admin'
console.log(person.name);//nike