1 /* 2 对象属性是由名字、值和自足特性构成的。 3 属性值可以用一个或两个方法替代,这两个方法就是getter和setter. 4 由getter和setter定义的属性称作“存取器属性” 5 */ 6 /* 7 定义存取器属性最简单的方法是使用对象直接量语法的一种扩展写法 8 */ 9 var o ={ 10 //普通的数据属性 11 data_prop:value, 12 13 //存取器属性都是成对定义的函数 14 get accessor_prop(){/*这里是函数体 */} 15 get accessor_prop(value){/*这里是函数体 */} 16 }; 17 18 var p = { 19 //x和y是普通的可读写的数据属性 20 x:1.0, 21 y:1.0, 22 //r是可读写的存取器属性,它有getter和setter. 23 //函数体结束后不要忘记带上逗号 24 get r() {return Math.sqrt(this.x*this.x + this.y*this.y);}, 25 set r(newvalue){ 26 var oldvalue = Math.sqrt(this.x*this.x + this.y*this.y); 27 var ratio = newvalue/oldvalue; 28 this.x *= ratio; 29 this.y *= ratio; 30 }, 31 //theta是只读存取器属性,它只有getter方法 32 get theta(){return Math.atan2(this.y,this.x);} 33 };