如何从另一个 js 文件中获取变量值

How to get variable value from another js file

本文关键字:获取 变量值 文件 js 另一个      更新时间:2023-09-26

我有一个名为Second.js的JavaScript文件,其中包含名为page的变量。

第二.js:

var page = 1;

如何从另一个名为 one.js 的 JavaScript 中检索该值,即 page

从另一个.js文件中获取值的另一种方法是在浏览器中保存变量:

a.js
var myemail="xyz@gmail.com";
localStorage.setItem("email",myemail);

现在,此变量保存在浏览器中。如果我们想在另一个文件中获取这个变量,我们使用:

b.js
var x=localStorage.getItem("email");
alert(x) // output=xyz@gmail.com

如果您真的想要不同脚本之间的变量可见性,您可以将变量附加到window上。 例如:

脚本 1:

window.page = 1;

脚本 2:

alert(page);

确保不要使用非常简单的变量名称(例如page)以避免可能的冲突。一个好的做法是在窗口上附加一个应用程序名称数组并使用它,确保不会影响"全局范围"上的任何内容。例如:

window.MY_APP = {
  page: 1,
  foo: 'bar',
  whatever: [1, 2, 3],
  example: {
    name: 'john',
    surname: 'smith'
  }
};

页面上的所有JavaScript在相同的整体环境中执行,因此如果page是全局的Second.js,则可以从页面上加载的任何其他JavaScript中使用它。 例如:

<script src="Second.js"></script>
<script src="SomeOtherFile.js"></script>

同样,前提是page是全局的,您可以从SomeOtherFile.js使用它(只需将其引用为 page ,没有限定符)。

甚至:

<script src="Second.js"></script>
<script>
    alert(page); // "1"
</script>

如果page不是全局变量,则必须以某种方式修改Second.js,以使page变量或值可用于其他脚本。当然,您可以通过将其全局化来做到这一点,或者您可以使用异步模块定义加载程序来避免周围有一堆全局变量并管理依赖项。(AMD可能对您正在做的事情矫枉过正,或者不是,我们在这里没有太多的背景信息。

它们都必须包含在同一个 HTML 文件中。确保两者都在并加载,然后就好像你所有的javascript都存在于一个单一的,巨大的JS文件中!

有两种

方法可以做到这一点:按照您想要访问它们的顺序加载脚本,或者在加载页面之前不要开始执行脚本(推荐,因为这可以确保所有内容都已加载!无论哪种方式,您都可以引用变量,就好像它们在同一个文件中一样 - 您不需要用"var"重新声明它们。