如何在不同的js文件中处理同名的两个变量?

时间:2016-09-08 10:39:30

标签: javascript variables var

我有两个带有相同名称的变量的javascript文件,如何定义使用哪一个?

2 个答案:

答案 0 :(得分:2)

在Javascript中,您实际上可以使用不同的目标制作2个变量,并且在同一个scope中具有相同的名称。

基本上,有两种类型的范围:globallocal。全局范围是您在不同文件中创建具有相同名称的2个变量所面临的问题。

曾经,这是一个常见问题,开发人员同意尝试制作具有不同范围的文件,并且只有在必要且不可避免的情况下才使用全局范围。

因此,创建新作用域(本地)的最常用方法是在函数中关闭代码。 javascript中的函数创建了一个新的范围,这个范围是全局无法访问的,但您仍然可以从本地范围到达全局范围。

此外,还有两种方法可以保持代码模块化(1个文件= 1个模块):使用AMDCommonJS模块。

有关范围here的更多信息。

答案 1 :(得分:1)

想象一下以下场景:

<html>...

<script src="file1.js">var x = "pizza";</script> 
<script src="file2.js">var x = "cheese";</script>
<script src="file3.js">var x = "chocolate";</script>

您的共享变量将始终被最新值覆盖,在本例中为#34; chocolate&#34;。

如果要拆分它们,可以使用前缀或考虑更改名称,因为一旦将它们加载到主文件中,它们就在同一名称空间中。

console.log(x); // chocolate will be printed since it is the last value it was (re)defined as.
</html>

编辑:

如果你想让它工作,最简单的方法就是改变变量&#39;名。

<script src="file1.js">var x = "pizza";</script> 
<script src="file2.js">var y = "cheese";</script>
<script src="file3.js">var z = "chocolate";</script>

console.log(x); //pizza
console.log(y); //cheese
console.log(z); //chocolate