导入自调用功能

Kel*_*hao 6 javascript ecmascript-6

我已经创建了一个特殊的效果,并将其包装到myEffect.js文件中的自调用函数中,

(function () {
    // yada yada...
}());
Run Code Online (Sandbox Code Playgroud)

然后可以使用es6导入方式将其导入到我的主文件中,以便它按原样运行吗?我这样做的原因是我的主要js文件包含其他杂项,并且这种效果本身相当长,我希望能够将它们分解。

Ber*_*rgi 9

该效果将在评估模块时运行,这种情况发生在在其他模块中至少导入一次该模块时。

您根本不需要IIFE,ES6模块已经提供了自己的作用域。

您不需要导出任何内容,因为您的模块应该做的就是执行副作用。它没有结果值。(可以认为这是设计缺陷,但我们不要讨论这一点)。

您需要做的就是

// myEffect.js
… // yada yada
Run Code Online (Sandbox Code Playgroud)

// main.js
import 'myEffect.js';
Run Code Online (Sandbox Code Playgroud)

  • 哦...我不知道你可以像这样简单地导入...哈...所有的教程和说明都有导出和导入、名称、未命名等...所以我可以只导入js 并让它运行?那会很棒 哈哈。 (4认同)