Можно ли внедрять зависимости в модули ES2015, как в других языках программирования, таких как C# или Java? Если я импортирую модуль, я создаю для него жесткую зависимость и не могу изменить ее позже во время выполнения. Например, у меня есть следующий код JavaScript:
import Animal from './dog';
class Person {
feedAnimal() {
new Animal().feed();
}
}
Я импортирую модуль собаки. Но что, если я хочу изменить его на кошку? На данный момент мне нужно изменить строку 1 вручную, но в некоторых ситуациях я хочу, чтобы она настраивалась извне, чтобы при некоторых условиях это был кот, а при некоторых других условиях это должен был быть кот. Все то, что можно сделать с помощью классической инъекции зависимостей.
Я знаю, что существуют некоторые фреймворки DI, такие как Scatter, Electrolyte, Wire и так далее, но к сожалению, большинство из них требуют особого синтаксиса и не предназначены для модулей ES2015 а>.
class Person { constructor(Animal) { this.Animal = Animal; } feedAnimal() { new this.Animal().feed() } }
, но похоже, что вы ожидаете чего-то более продвинутого. - person lyschoening   schedule 14.08.2015require-inject
поддерживает это, но вы можете взглянуть. - person thefourtheye   schedule 14.08.2015