emberjs计算属性

时间:2012-06-01 08:34:23

标签: javascript ember.js

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

任何人都可以告诉我他们之间的差异是什么,如果一种方式比另一种更好,导致在示例代码中没有明显的差异(或者我错过了什么?)

2 个答案:

答案 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。也可能对元编程有用。