对象的数据属性
一
var person = {};
Object.defineProperty(person,'name',{
writable: false,
value : 'nichols'
});
console.log(person.name);
person.name = "greg";// 7
alert(person.name);
上述代码通过调用defineProperty方法,设置了对象的'writable'特性 一个值为‘nichols’的 ‘name’属性。
在非严格模式下,第七行代码将会忽略,而在严格模式下,会抛出异常。
二
var person = {};
Object.defineProperty(person,'name',{
configurable: false, //表示不能从对象中删除属性,不可配置的
value : 'nichols'
});
console.log(person.name);
delete person.name;
console.log(person.name);
上述代码在严格模式下delete会抛出异常,而在非严格模式下delete那行代码什么都不会发生
var person = {};
Object.defineProperty(person,'name',{
configurable: false, //表示不能从对象中删除属性,不可配置的
value : 'nichols'
});
Object.defineProperty(person,'name',{
configurable: true,
value: 'aaa'
})
上述代码在严格模式下会抛出异常,将configurable 特性设置会false后,不能从对象中删除属性,表示属性是不能配置的,此时,再调用defineProperty 修改writable意外的属性将
浙公网安备 33010602011771号