2

emberjsのドキュメントhttp://emberjs.com/documentation/#toc_computed-properties-gettersで、計算されたプロパティを定義する方法は2つあると述べています。1つはプロトタイプ拡張を使用する方法で、もう1つは関数をへの呼び出しでラップする方法Ember.computedです。

誰かがそれらの間の違いは何であるかを教えてもらえますか?一方の方法がもう一方の方法よりも優れている場合、サンプルコードでは明らかな違いがない(または何かが欠けている)原因になりますか?)

4

2 に答える 2

3

Ember.computedアプローチがより冗長であることを除いて、両方のバリアントに違いはありません。実際、propertyバリアントは内部で呼び出します。function.jsEmber.computedの定義を参照してください

packages / 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 に答える