对象的数据属性

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意外的属性将
posted @ 2019-04-13 22:04  涂涂前端  阅读(171)  评论(0)    收藏  举报