有什么方法可以导入没有副作用的ES模块的各个部分?

时间:2018-10-01 21:10:58

标签: javascript es6-modules

在导入模块的特定部分时,是否可以导入而不导入模块的所有副作用?

示例:

  • Module_A.js导出自定义元素(CustomElement)的类定义,但也将其在自定义元素注册表中定义为副作用
  • Module_B.jsCustomElement导入Module_A以便可以对其进行扩展,但是由于Module_A已经在注册表中定义了CustomElementModule_B无法使用该名称定义它自己的元素。

理想情况下,Module_B可以从CustomElement导入Module_A,而不会运行Module_A的任何副作用,从而允许使用所需的特定部分,也不会出现任何意外情况。

这可能吗?

1 个答案:

答案 0 :(得分:1)

否,这是不可能的。您所能做的就是拆分模块以消除副作用。

在您的示例中,

  • CustomElement.js将导出自定义元素(CustomElement)的类定义
  • Module_A.js将导入CustomElement并还将其在自定义元素注册表中定义为副作用
  • Module_B.js将导入CustomElement,以便对其进行扩展,并使用该名称定义自己的元素。