相同的 IIFE,不同的 js 文件

Same IIFE, different js files

我正在构建的网页中有 3 个不同的脚本,它们都运行良好。

但是,在了解了 IIFE 的优点之后,我试图将我的所有脚本封装在一个 IIFE 中,但它不起作用。控制台出现错误:'Uncaught SyntaxError: Unexpected end of input' referering script-1.js.

所以,我有类似的东西:

<script type='text/javascript' src='...script-1.js'></script>
<script type='text/javascript' src='..script-2.js'></script>
<script type='text/javascript' src='script-3.js'></script>

而我正在做的是: 在 script-1.js 我开始这样的代码

(function() {

//....rest of javaScript code script-1

在脚本上-3.js 我这样结束了代码:

//....rest of the code script-3

})();

1) 现在,第一个问题是:这可能吗?在同一个 IIFE 中包装不同的 js 文件?理论上好像是,但我不确定。

2) 那么,如果可能的话,我是不是做错了什么?

我知道对于你们中的大多数人来说这似乎很基础,但我会感谢您的反馈:)

每个单独的脚本都必须在语法上独立完成,您不能拥有一个跨脚本的 IIFE。

相反,请查看脚本 bundlers/module 系统,例如 RequireJS、Webpack、Browserifty 等。它们可以帮助您在表达各个脚本之间的相互依赖性时避免使用全局变量,并有助于将它们捆绑到一个脚本中以用于部署(如果需要)。