导入模块的特定部分时,是否可以导入它而不会获得模块具有的所有副作用?
例:
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
将导入CustomElement
,并将自定义元素注册表中的该元素定义为副作用Module_B.js
将导入CustomElement
以便它可以扩展它,并使用该名称定义自己的元素。