javascript – 将依赖项注入ES2015模块

前端之家收集整理的这篇文章主要介绍了javascript – 将依赖项注入ES2015模块前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以像ES#或其他编程语言一样将依赖注入ES2015模块?如果我导入一个模块,我会为它创建一个硬依赖项,并且以后不能在运行时更改它.例如,我有以下 JavaScript代码
import Animal from './dog';

class Person {
  FeedAnimal() {
    new Animal().Feed();
  }
}

我正在导入狗模块.但是如果我想把它变成猫呢?目前我必须手动修改第1行,但在某些情况下我希望它可以从外部配置,以便在某些条件下应该有一只猫,在其他条件下它应该是一只猫.所有可以通过经典依赖注入完成的事情.

我知道有一些DI框架,如Scatter,Electrolyte,Wire等,但不幸的是大多数都需要一些特殊的语法,而不是为ES2015 modules制作.

解决方法

您无法动态定义依赖项. See this question and its accepted answer

Question: ES6 variable import name in node.js?

Answer: Not with the import statement. import and export are defined in such a way that they are statically analyzable,so they cannot depend on runtime information.

猜你在找的JavaScript相关文章