在emberjs文档http://emberjs.com/documentation/#toc_computed-properties-getters中,说有两种方法可以定义计算属性。首先是通过原型扩展,第二个是通过调用Ember.computed
来包装函数。
任何人都可以告诉我他们之间的差异是什么,如果一种方式比另一种更好,导致在示例代码中没有明显的差异(或者我错过了什么?)
答案 0 :(得分:3)
两种变体之间没有区别 - 除了Ember.computed
方法更详细。事实上,property
变体在内部调用了Ember.computed
,请参阅function.js中的定义。
<强>包/余烬的运行时/ lib / ext目录/ function.js 强>:
Function.prototype.property = function() {
var ret = Ember.computed(this);
return ret.property.apply(ret, arguments);
};
答案 1 :(得分:1)
我想最终没有。如上所述,如果您不希望扩展Ember.computed
原型,则可以使用Function
。也可能对元编程有用。