//修改属性默认值使用object.defineProperty(),接收三个参数,属性所在的对象,属性的名字和一个描述符对象
//描述符对象必须为configurable、enumerable、writable、value;
var person = {};
Object.defineProperty(person,'name',{
//不能从对象中删除属性
configurable: false,
value: 'Nicholas'
});
//Nicholas
alert(person.name);
//非严格下不会造成什么,也不会改变,但是严格下就会报错,configurable: false,能从对象中删除属性
delete person.name;
//Nicholas
alert(person.name);
如果configurable: true,
var person = {};
Object.defineProperty(person,'name',{
//不能从对象中删除属性
configurable: true,
value: 'Nicholas'
});
//Nicholas
alert(person.name);
//非严格下不会造成什么,也不会改变,但是严格下就会报错,configurable: false,能从对象中删除属性
delete person.name;
//undefined
alert(person.name);