Javascript 将几个.js文件放在一个作用域下

Javascript 将几个.js文件放在一个作用域下,javascript,Javascript,我有几个大型js文件,其中函数和对象位于全局范围内,它们之间有函数调用。是否有一种相对简单的方法将其置于本地范围内 <script src="fileA.js"></script> <script src="fileB.js"></script> <script src="fileC.js"></script> eval.call(yourlocalscope, string) 我试着把(function(){放在文

我有几个大型js文件,其中函数和对象位于全局范围内,它们之间有函数调用。是否有一种相对简单的方法将其置于本地范围内

<script src="fileA.js"></script>
<script src="fileB.js"></script>
<script src="fileC.js"></script>
eval.call(yourlocalscope, string)

我试着把
(function(){
放在文件的开头,
})()在最后一个结尾处,但它不起作用

10倍于您的善意帮助BR

不,没有

最接近的方法是将它们设置为通过名称空间(单个全局变量,选择名称以避免冲突)共享变量,例如
window.YOUR_SCRIPT_name={}
不,没有


最接近的方法是将它们设置为通过名称空间(一个选择名称以避免冲突的单个全局变量)共享变量,例如
window.YOUR_SCRIPT_name={}

您不能这样包装它,因为每个脚本仍然是单独解析的(仅将内容包含到文件中,
标记不起作用)

您只需手动连接文件,在整个内容周围放置
function(){…}()
,并将这个新连接的脚本作为单个单元使用


如果脚本内容的重写是可行的,您可以让它们使用工厂方法中提供给它们的共享范围,如另一个答案中提到的Quentin。但是,更好的解决方案(如果您可以重写并且这是一个更大的项目)切换到具有依赖项的完整模块概念,例如。

您不能这样包装它,因为每个脚本仍然是单独解析的(仅将内容包含到文件中,
标记不起作用)

您只需手动连接文件,在整个内容周围放置
function(){…}()
,并将这个新连接的脚本作为单个单元使用


如果脚本内容的重写是可行的,您可以让它们使用工厂方法中提供给它们的共享范围,如另一个答案中提到的Quentin。但是,更好的解决方案(如果您可以重写并且这是一个更大的项目)将切换到具有依赖项的完整模块概念,例如。

而不是使用脚本src=“fileA.js”,您可以使用Ajax.com将fileA.js的内容作为字符串获取,而不是评估到您的本地范围

<script src="fileA.js"></script>
<script src="fileB.js"></script>
<script src="fileC.js"></script>
eval.call(yourlocalscope, string)

不必使用脚本src=“fileA.js”,您可以使用Ajax.Than将fileA.js的内容作为字符串获取到本地范围

<script src="fileA.js"></script>
<script src="fileB.js"></script>
<script src="fileC.js"></script>
eval.call(yourlocalscope, string)

10倍于你的想法,他们是有帮助的。我已经有了解决方案,就AMD而言,这是一个非常大的项目,它只是不适用于这种情况。感谢你的帮助10倍于你的想法,他们是有帮助的。我已经有了解决方案,就AMD而言,这是一个非常大的项目,它只是不适用于这种情况。感谢你的帮助elp虽然这样做有效,但如果文件相互依赖并且必须按顺序执行,则会增加很多复杂性。这也会导致调试更加困难(除非您使用一些只有某些浏览器支持的魔法
/@source
注释为已计算的字符串命名)。如果您想异步加载,最好切换到require.js或其他处理所有这些事情的工具。感谢这是一个有用的解决方案+1在我的例子中,我一直在寻找一个相对轻松的工具。虽然这是可行的,但如果文件相互依赖并且必须是按顺序执行。这也会导致调试更加困难(除非您使用一些只有某些浏览器支持的神奇的
/@source
注释为已计算的字符串命名)。如果您想异步加载,最好切换到require.js或其他处理了所有这些事情的工具。感谢这是一个有用的解决方案+1在我的情况下,我正在寻找一个相对轻松的工具。