Sproutcore自定义getter / setter

时间:2011-03-25 12:58:46

标签: sproutcore

在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

1 个答案:

答案 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时添加。