7

C# や Java などの他のプログラミング言語のように、依存関係を ES2015 モジュールに注入することは可能ですか? モジュールをインポートすると、そのモジュールへの強い依存関係が作成され、後で実行時に変更できなくなります。たとえば、次の JavaScript コードがあります。

import Animal from './dog';

class Person {
  feedAnimal() {
    new Animal().feed();
  }
}

dog モジュールをインポートしています。しかし、それを猫に変更したい場合はどうすればよいでしょうか。現時点では、1行目を手動で変更する必要がありますが、状況によっては、外部から構成可能にして、特定の条件下では猫が存在し、他の特定の条件下では猫になるようにする必要があります。従来の依存性注入で実行できるすべてのこと。

ScatterElectrolyteWireなどの DI フレームワークがいくつかあることは知っていますが、残念ながらそれらのほとんどは特別な構文を必要とし、 ES2015 モジュール用に作成されていません

4

3 に答える 3

2

依存関係を動的に定義することはできません。この質問とその受け入れられた回答を参照してください

質問: node.js の ES6 変数インポート名?

回答: import ステートメントではありません。import と export は、静的に分析できるように定義されているため、ランタイム情報に依存することはできません。

于 2015-08-17T16:58:20.547 に答える
0

SystemJSに移行しました。SystemJS を使用すると、次のような動的インポートを行うことができますSystem.import('foo').then(() => console.log('Loaded));

もう 1 つの利点は、System が新しい ECMAScript 標準モジュール ローダー システムになることです。

于 2015-09-09T08:36:40.127 に答える