2

在 emberjs 文档http://emberjs.com/documentation/#toc_computed-properties-getters中,说有两种方法可以定义计算属性。第一种是通过原型扩展,第二种是通过将函数包装在对Ember.computed.

谁能告诉我它们之间的区别是什么,如果一种方法比另一种更好,因为在示例代码中没有明显的区别(或者我遗漏了什么?)

4

2 回答 2

3

两种变体之间没有区别 - 除了Ember.computed方法更冗长。实际上,property变体内部调用Ember.computed,请参见function.js中的定义。

包/ember-runtime/lib/ext/function.js

Function.prototype.property = function() {
    var ret = Ember.computed(this);
    return ret.property.apply(ret, arguments);
};
于 2012-06-01T14:19:13.640 回答
1

我想最后没有。如前所述,Ember.computed如果您不喜欢Function扩展原型,您可以使用。也可能对元编程有用。

于 2012-06-01T09:08:33.750 回答