在范围内放置几个.js文件

时间:2012-10-11 10:45:50

标签: javascript

我有一些大的js文件,其中的函数和对象都存在于全局范围内,并且它们之间有函数调用。是否有一种相对简单的方法将它们放在当地范围内。

<script src="fileA.js"></script>
<script src="fileB.js"></script>
<script src="fileC.js"></script>

我尝试将(function(){放在A文件的开头,将})();放在最后一个文件的末尾,但它不起作用。

10x为你的帮助BR

3 个答案:

答案 0 :(得分:2)

不,没有。

最接近的是将它们设置为通过命名空间共享变量(一个名称选中的单个全局变量,不太可能发生冲突),例如window.YOUR_SCRIPT_NAME = {}

答案 1 :(得分:2)

你不能像那样包装它,因为每个脚本仍然是单独解析的(<script>标签只是将内容包含在文件中不起作用)。

您可以简单地手动连接文件,将function(){ ... }()放在整个内容周围,并将这个新连接的脚本作为一个单元使用。

如果脚本内容的重写是可行的,您可以使用在其他答案中提到的Quentin等工厂方法中使用的共享范围。但是,一个更好的解决方案(如果你可以重写,如果这是一个更大的项目)将切换到具有依赖关系的完整模块概念,如AMD

答案 2 :(得分:1)

您可以使用Ajax将file.js的内容作为字符串获取,而不是使用脚本src =“file.js”。比当地范围更好。

eval.call(yourlocalscope, string)