1

JavaScript、名前空間、縮小化/連結に関するいくつかの問題が発生しています。ファイルが連結される順序を制御することはできません (少なくとも制御したくはありません)。「com.example.ExampleClass」などの文字列が指定されたときに単にオブジェクトを返す名前空間関数を使用すると、別のクラスで必要なときに「クラス」が定義されない場合があります。

EventDispatcher からの機能を必要とする DocumentProvider オブジェクトがあるとします。しかし、私の現在のセットアップでは、DocumentProvider は EventDispatcher の前に連結されます。この機能をプロトタイプで定義したいので、コンストラクターで拡張できません。

したがって、私の提案する解決策は、遅延初期化を使用することです。

  • namespace(alias, factory)トップレベル関数を定義する
  • 名前空間で疑似オーバーロードを使用して、ファクトリを指定された名前に割り当てるか、ファクトリによって作成されたオブジェクトを返します

define(alias, factory)または、とで分割することもできimport(alias)ます。可読性が向上し、グローバル空間がさらに汚染されます。

私の質問は次のとおりです。この問題に対する、より優れた、より単純な、より「標準的な」解決策はありますか? 名前空間機能 (実装が異なる) が言語に追加されるリスクは何ですか?

4

1 に答える 1

0

RequireJSを確認してください。時間を大幅に節約できます。

于 2012-12-19T15:30:08.107 に答える