我正在构建的网页中有3个不同的脚本,一切正常。
然而,在我了解了IIFE的优点之后,我试图将我的所有脚本包装在一个IIFE中,但它不起作用。控制台上出现错误:'Uncaught SyntaxError:意外的输入结束'refeering 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
在script-3.js上,我结束了这样的代码:
//....rest of the code script-3
})();
1)现在,第一个问题是:这可能吗?在同一个IIFE中包装不同的js文件?理论上似乎是,但我不确定。
2)然后,如果有可能,我做错了什么?
我知道对你们大多数人来说这似乎很基本,但我会很感激一些反馈:)
答案 0 :(得分:8)
每个单独的脚本必须在语法上完整,你不能拥有一个IIFE跨越脚本。
相反,请查看脚本捆绑器/模块系统,如RequireJS,Webpack,Browserifty等。它们可以帮助您在表达各个脚本之间的相互依赖关系时避免使用全局变量,并帮助将这些脚本捆绑到单个脚本中进行部署(如果需要) )。