如何将一个JavaScript文件中的变量分配给另一个JS File?

本杰明·S

请查看示例场景,假设我有一个名为的变量, var myvariable;

然后在另一个JavaScript文件中,将值分配给varaiable,

myvariable = "Hi";

我尝试了什么?

基本上,我为此所做的是Firebase的custom-email-handler中的newPassword变量我在另一个页面上可以重置密码,但是在另一个脚本文件中可以在该页面上更改密码。

德里克·阿尔瓦拉多(Derek Alvarado)

如果myvariable在全局范围内,则意味着它没有包含在任何函数中,那么默认情况下它将对所有其他脚本可用。而且,令人沮丧的是,如果您确实在另一个函数中声明了它,但是在声明它时忘记使用“ var”,那么它也将最终出现在全局范围内。

考虑一下:

<script src="script1.js"></script>
<script src="script2.js"></script>

script1.js:

var myvariable = "hi";

script2.js:

console.log(myvariable);
// "hi"

页面加载时,“ hi”将被打印到控制台,因为它script1.js被列在最前面

与此相反:

<script src="script1.js"></script>
<script src="script2.js"></script>

script1.js:

function() {
    var myvariable = "hi";
}

script2.js:

console.log(myvariable);
// Uncaught ReferenceError: myvariable is not defined

页面加载时,script2.js将被抛出错误,因为它无法看到myvariable,因为它被锁定在函数作用域内。

最后一种情况

<script src="script1.js"></script>
<script src="script2.js"></script>

script1.js:

var myFunc = function() {
    //notice I'm not going to use "var" in front of myvariable
    myvariable = "hi";
}
//As soon as you call the function, myvariable is now global. Oops!
myFunc();

script2.js:

console.log(myvariable);
// "hi"

如果您想了解更多有关此主题的信息,只需搜索“ javascript范围”,“ javascript全局范围”或“ javascript隐式全局”。

而且,要解决我认为是您最初的困惑点,只需记住所有脚本都在浏览器窗口的上下文中运行。没有“我如何使该脚本与该脚本对话?”的概念。为了帮助看清它是如何工作的,请想象一下获取脚本的内容并将其转储到一个大的脚本文件中。从概念上讲,这就是在浏览器完成所有内容加载之后发生的事情(除非像异步加载这样的高级主题)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将另一个文件中的变量分配给类常量?

如何将公式的值(包含变量)分配给另一个变量

Bash 脚本在 file.dev 中查找某些文本并将其分配给一个变量

如何将变量列表分配给另一个列表

如何将包含空格的变量分配给 KSH 中的另一个变量

如何将Angular @Input值分配给另一个变量并填充到子代中?

如何从导入的文件中运行另一个 vue.file 中的函数

如何将字符串和变量的组合分配给另一个变量?

如何将我的选择选项分配给另一个变量

将struct的第一个变量分配给另一个

Python将值从一个变量分配给另一个

如何将现有文件对象分配给另一个文件对象

HTML - 如何将文本值分配给另一个属性的值?

如何将另一个列表分配给“通过引用传递”的列表?

如何将共享指针的引用分配给另一个共享指针

将$ @分配给Shell函数中的另一个变量

如何将 javascript 的变量存储在另一个 .js 文件中?

Gatsby中的children变量是什么?如何将其分配给另一个组件?

如何将一个枚举值强制转换/分配给另一个枚举

如何将一个可观察的KnockoutJs分配给另一个可观察的对象?

如何将一个lambda表达式对象分配给另一个?

如何将值从一个对象分配给另一个

如何将特定属性从一个对象分配给另一个

如何将值从一个哈希集分配给另一个?

我如何将列表中的元素分配给 Python 中列表中的另一个元素

将一个对象分配给另一个对象Javascript

将HTML文件对象从一个<input type = file>传递到另一个

JavaScript:如何将button元素的值分配给另一个div元素?

如何从Titanium Appcelerator中的另一个窗口的(JS file2)click事件关闭一个窗口(JS file1)