var o = {
get a() {
return this._a || 0
},
set a(v){
this._a = v
}
}
o.a = 100;
alert(o.a)
var o = {
geta:function(){
return this._a || 0;
},
seta:function(v){
this._a = v
}
}
o.seta(100);
alert(o.geta())
getter和setter没看出来有什么用呢 ?
getter和setter可以在你对属性进行操作之前装上钩子函数,在取值和赋值之前执行。
如果是两个方法都有的话确实没什么用,还不如直接用.号访问,像OC还故意扩充了.号存取设置属性的语法。
但是,如果只开放get或者只开放set就有用了。
只有get方法可以模拟出只读属性。
而set方法则可以模拟出只写属性,记得浏览器里面跨域iframe就是可以更改location.href但是不可读的。