Javascript 有没有办法导入ES模块的部件而不产生副作用?
导入模块的特定部分时,是否可以在不获取模块所有副作用的情况下导入该模块 例如:Javascript 有没有办法导入ES模块的部件而不产生副作用?,javascript,es6-modules,Javascript,Es6 Modules,导入模块的特定部分时,是否可以在不获取模块所有副作用的情况下导入该模块 例如: Module_A.js导出自定义元素(CustomElement)的类定义,但也在自定义元素注册表中将该元素定义为副作用 Module_B.js从Module_A导入CustomElement,以便可以扩展它,但是由于Module_A已经在注册表中定义了CustomElement,Module_B无法使用该名称定义它自己的元素 理想情况下,Module_B将能够从Module_A导入CustomElement,而
导出自定义元素(Module_A.js
)的类定义,但也在自定义元素注册表中将该元素定义为副作用CustomElement
从Module_B.js
导入Module_A
,以便可以扩展它,但是由于CustomElement
已经在注册表中定义了Module_A
,CustomElement
无法使用该名称定义它自己的元素Module_B
Module_B
将能够从Module_A
导入CustomElement
,而无需运行任何Module_A
的副作用,允许使用所需的特定部件,也不会运行任何意外情况
这可能吗?不,这不可能。你所能做的就是将模块分开以消除副作用 以你为例,
将导出自定义元素的类定义(CustomElement.js
)CustomElement
将导入Module_A.js
,并在customelements注册表中将该元素定义为副作用CustomElement
将导入Module_B.js
,以便可以扩展它,并使用该名称定义自己的元素CustomElement