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.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...