繁体   English   中英

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

[英]How to get variable value from another js file

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

Second.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都在相同的整体环境中执行,因此如果Second.js page是全局的,则可以从页面上加载的任何其他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'重新声明它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM