Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sproutcore自定义getter/setter_Sproutcore - Fatal编程技术网

Sproutcore自定义getter/setter

Sproutcore自定义getter/setter,sproutcore,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

在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

自定义setter/getter函数的外观如下:

bar: function(key, value){
  if(value != undefined){
    this._bar = value;
  }

  return this._bar;
}

这将简单地获取/设置值。要在片场上进行smth,只需在此之后添加所需内容。_bar=value,要在get上进行smth,只需在value==undefined时添加即可。

您好,谢谢您的回答-我认为这几乎是行不通的。。但是我会尝试做一些测试,也许会用更多的细节来扩展这个问题