は私が見ることが多い利点が代わりにコードを減らすよりも、直接他のEmber.computed
を呼び出すのでは、このパターンに存在する場合は機能エンバーの消滅機能
const { computed } = Ember;
を取得するために、破壊オブジェクトを使用することEmber.jsにコードに遭遇しますか?これはオブジェクト内の関数をカプセル化することとは違うでしょうか?
は私が見ることが多い利点が代わりにコードを減らすよりも、直接他のEmber.computed
を呼び出すのでは、このパターンに存在する場合は機能エンバーの消滅機能
const { computed } = Ember;
を取得するために、破壊オブジェクトを使用することEmber.jsにコードに遭遇しますか?これはオブジェクト内の関数をカプセル化することとは違うでしょうか?
別に(確かだけ多くの用途のために報わ)のみcomputed
代わりEmber.computed
のたびに書くことから、主な利点は、computed
をローカルとconst
可変になることです。これにより、グローバルスコープEmber
を検索する必要がなく、タイトなスポットで可変ルックアップ時間を短縮できます。また、後でEmber.computed
を上書きすることによって、コード内で誰かが邪魔になるのを防ぐことができます。
さて、表示されたコードは必然的に 'ember 'from ember';'で始まり、グローバルスコープの検索はありません。いずれにしても、 'Ember.computed'はプロパティの宣言で使用されます。プロパティの宣言はコンパイル時に解析され、決まった場所には決して出現しません。これらの理由のいずれかが魅力的であれば、多くの/ほとんどのアプリケーションがこのアプローチを採用すると期待していますが、IRLは誰でも 'Ember.computed'を使用します。 –
@torazaburoはい、それは本当です、私の答えはエバー特有ではありませんでした。フレームワークはおそらく、一般的に使用される関数に名前付きエクスポートを使用する必要がありますので、 'ember 'から' import {computed}'を実行することができます;; – Bergi
実際にあなたのコメントにEmberモジュール/インポートを再構成する計画がありますこれはすでに実装されているか間もなく行われるので、 'ember/core ';またはそれに相当するものから' import {computed}を書くことになります。 –
これは単なるコーディングスタイルです。意味的には同じです。 Emberの新しいモジュール構造にそのようなコードを移植するほうが、ずっと簡単かもしれません。それは "カプセル化"とは関係ありません。 –
「Emberの新しいモジュール構造にそのようなコードを移植するのは、ほんのわずかかもしれません。カプセル化とは、新しいjsライブラリを追加すると何が起きるのかというと、関数定義をグローバルに定義するとコードを破ることになります – jpoiri
'Ember'が再定義されていない限り、とにかくベットがオフになっていて、実際にはあなたが表示するコードは 'ember 'from ember';'で始まります。 –