在Sproutcore中,我正在使用通用的setter / getter方法:
foo.set('bar', newValue );
val = foo.get('bar');
这与Objective-c完全不同,我将如何编写自定义getter / setter?
感谢那些帮助过的人,方法是
bar: function( propKey, propVal ) {
if(propVal===undefined) { // called as getter method
var computedBarValue = ...
return computedBarValue;
} else {
this.bar = propVal + ... // called as setter method
}
}.property()
如您所见,您有一个方法,即getter和setter。
如果你打电话
val = foo.get('bar');
方法参数'propVal'将是未定义的。
如果你打电话
foo.set('bar', newValue );
方法参数'propVal'将是newValue
答案 0 :(得分:2)
自定义setter / getter函数看起来像这样:
bar: function(key, value){
if(value != undefined){
this._bar = value;
}
return this._bar;
}
这只是获取/设置值。要在set上做smth,只需在this._bar = value之后添加你想要的东西,在get上做smth,只要在value == undefined时添加。