六、1、对象属性的四种特性

来源:互联网 发布:产品效果图建模软件 编辑:程序博客网 时间:2024/06/08 13:12

var person=new Object();person.name="Nicholas";person.age=29;person.sayName=function(){alert(this.name);}

上面创建了一个person属性对象,他的name属性有四种特性。

[[Configurable]]  能否删除修改这个name属性

[[Enumerable]]   表示能否通过 for-in 循环返回属性

[[Writable]]    表示能否修改name属性的值

[[Value]]   包含这个属性的数据值。读取属性值的时候,从这个位置读;写入属性值的时候,
  把新值保存在这个位置。这个特性的默认值为 undefined 。

1、 Object.defineProperty()   要想修改属性的特性,使用这个方法

这个方法接收三个参数:属性所在的对象、属性的名字和一个描述符对象。

var person={};Object.defineProperty(person,name,{writable:false,value:"Nicholas"                })
2、访问器属性

Object.defineProperty(book, "year", {
get: function(){
return this._year;
},
set: function(newValue){
if (newValue > 2004) {
this._year = newValue;
this.edition += newValue - 2004;
}
}
});
book.year = 2005;
alert(book.edition); //2


3、定义多个属性特性   Object.defineProperties()

Object.defineProperties(girl,{  name:{    writable: false  },  age:{    writable: true,    value: 22  }});

原创粉丝点击