定义存取器属性最简单的方法是使用对象直接量语法的一种扩展写法:
<script type="text/javascript">
var o = {
//普遍的数据属性
data_prop:value,
//存取器属性都是成对定义的函数
get accessor_prop(){/*这里是函数体*/},
set accessor_prop(value){/*这里是函数体*/},
};
//存取器属性定义为一个或2个属性同名的函数,这个函数定义没有使用function关键字,而是使用get和set。
var p = {
//x和y是普通的可读写的数据属性
x:1.0,
y:1.0,
//r是可读写的存取器属性,它有getter和setter
get r(){return Math.sqrt(this.x*this.x + this.y*this.y);},
set r(newvalue){
var oldvalue = Math.sqrt(this.x*this.x + this.y*this.y);
var ratio = newvalue/oldvalue;
this.x *= ratio;
this.y *= ratio;
},
//theta是只读存取器属性,它只有getter方法
get theta(){return Math.atan2(this.y, this.x)}
};
</script>
<script type="text/javascript">
var o = {
//普遍的数据属性
data_prop:value,
//存取器属性都是成对定义的函数
get accessor_prop(){/*这里是函数体*/},
set accessor_prop(value){/*这里是函数体*/},
};
//存取器属性定义为一个或2个属性同名的函数,这个函数定义没有使用function关键字,而是使用get和set。
var p = {
//x和y是普通的可读写的数据属性
x:1.0,
y:1.0,
//r是可读写的存取器属性,它有getter和setter
get r(){return Math.sqrt(this.x*this.x + this.y*this.y);},
set r(newvalue){
var oldvalue = Math.sqrt(this.x*this.x + this.y*this.y);
var ratio = newvalue/oldvalue;
this.x *= ratio;
this.y *= ratio;
},
//theta是只读存取器属性,它只有getter方法
get theta(){return Math.atan2(this.y, this.x)}
};
</script>