JS

JS—属性相关

2014-12-07  本文已影响66人  Miss____Du

ECMAScript中有两种属性:数据属性与访问器属性。
[[]]表示内部值

我们之前见到的属性大部分都是数据属性。因为一般我们都可以直接访问这些属性的值。而不是在访问时,要调用get函数。


【注意】1、对于configurable这个特性一旦设置为false就没有办法在设置为true 2、再调用这个方法时,如果不指定特性的值,那么这些特性就默认为false啦,所以要是用了就指定。
var book={
_year:2004,
edition:1
};
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);
上述代码是用这个方法定义访问器属性。
_year前面的下划线是一种常用的记号,用于表示只能通过对象方法访问的属性。而访问器属性则包含一个getter函数和一个setter函数。
这两个函数并不是必须要写,如果不写则意味着该属性就是不能读不能写。


上篇笔记说创建对象的方法,最终推荐的是封装的原型与构造函数混合的模式。我们在利用一个构造函数实例完一个对象后,其实可以再为他添加属性,可以不添加到原型内。

利用上面的代码来解释一下下面几个原理以及方法。


枚举对象的属性

上一篇 下一篇

猜你喜欢

热点阅读