如何加载2个javascript文件,它们之间可能有公共变量并在HTML页面上访问它?

Shr*_*man 1 html javascript

我有这个HTML页面.我想从2个具有常见变量的javascript文件中访问变量.我必须从这些变量中获取与各自javascript相关的值.我尝试使用它们加载它们,<script>但是当我访问js变量时,它只获取最后一个js文件的值,换句话说,最后加载的js文件会覆盖变量值,只有这些值可供访问.我真的很感激这方面的帮助.

谢谢!!!

Mad*_*aks 6

您需要命名变量或使用具有不同名称的变量.听起来你正在做的是相当于:

var x = 'foo';
var x = 'bar';

console.log(x);

    > bar
Run Code Online (Sandbox Code Playgroud)

哪个应该有意义.如果您使用名称空间,事情会更好地为您服务.考虑两个文件,script-1.jsscript-2.js:

// script-1.js
var s1 = {
    x:'foo'
}

// script-2.js
var s2 = {
    x:'bar'
}
Run Code Online (Sandbox Code Playgroud)

...然后...

console.log(s1.x);

    > foo

console.log(s2.x);

    > bar
Run Code Online (Sandbox Code Playgroud)

当然,这是一个相当陈腐的例子.

编辑

如果您无法自行更改文件,请执行此操作 - 在加载脚本-1之后但在加载脚本-2之前将值保存到其他名称/对象:

<script type="text/javascript" src="script-1.js"></script>

<script type="text/javascript">
    var s1 = {
        // Save off values here
        x:x,
        y:y
    }
</script>

<script type="text/javascript" src="script-2.js"></script>

// Then...
console.log(s1.x);  // will output the value from script-1.js
console.log(x);     // will output the value from script-2.js
Run Code Online (Sandbox Code Playgroud)

不漂亮,但应该工作正常.