Emberのゲッターとセッターが、unknown property
、computed property
、observers
を処理するようにアップグレードされました。多くの人がsetUnknownProperty()
フックを使用するか、またはgetとsetを使用してunknownProperty()
フックを使用する人はほとんどいませんが、ほとんどの人のコードではプロパティとオブザーバが計算されます。 computed propertiesとobserversの詳細
したがって、set()
とthis.set()
の基本的な違いは、お使いの機能のコンテキストと関係があります。 set()を呼び出すと、そのスコープ内で定義されていなければなりません。 Howeve、this.set()のスコープはです。です。関数を呼び出す場所に応じて、スコープが変わります。たとえば、のコンポーネントの場合、this
は、component
クラスそのものを指します。コントローラ、ルート、その他のオブジェクトの場合も同様です。独自のオブジェクトがあり、エバークラスを拡張していない場合、this
は他のJavaScriptコードと同様に動作します。 JavaScriptではデフォルトのgetterとsetterに戻ります。
get(this, 'foo')
を呼び出すと、JavaScriptのゲッター関数が呼び出され、検索対象のプロパティを持つ現在のコンテキストが渡されます。 this.get('foo')
と言うときは、上記のことを処理するEmber.Object
クラスからget()
を呼び出しています。 @Luxがthis.get( 'foo')をEmber.get(this、 'foo')を呼び出すために簡略化していると述べました。
これが役に立ちます。私はEmber guidesとAPI docsと読むことを勧めます。 Curent ember-cliとember-dataバージョンは@ 2.12.0です。
[Ember.get()とthis.get()の相違点の可能性があります(http://stackoverflow.com/questions/40606827/difference-間にember-get-and-this-get) – locks