我正在浏览一些代码,在脚本的开头我们有var emailID = email
. 稍后,代码通过 go 来引用 emailID window.emailID
。我想知道允许您通过 window.variableName 引用变量的规则是什么?
我不能在网上发布我的脚本,因为它与我的工作直接相关并且会违反我的合同。
我正在浏览一些代码,在脚本的开头我们有var emailID = email
. 稍后,代码通过 go 来引用 emailID window.emailID
。我想知道允许您通过 window.variableName 引用变量的规则是什么?
我不能在网上发布我的脚本,因为它与我的工作直接相关并且会违反我的合同。
window.variableName
意味着该变量是在全局范围内声明的。这意味着任何 JS 代码都可以访问这个变量。使用window.
不是必需的,但经常用作表示变量是全局变量的约定。
通常要避免使用全局变量。您应该在函数范围内定义变量。
JavaScript 中的全局变量附加到“全局对象”,在浏览器环境中它是window
对象的别名——这就是为什么你可以用variableName
或来引用全局变量window.variableName
。
还值得一提的是,在 JavaScript 中使用全局变量不被认为是良好的编码习惯。
这是一个很好且非常详细的解释。
window.myVar
或者window["myVar"]
是引用全局变量的显式方法。
一个变量是全局变量,如果它是在函数外部声明的(有或没有“var”),或者如果它在函数内部声明而不使用“var”,或者如果它被声明为window.myVar
or window["myVar"]
。
变量是通过为其赋值或使用关键字来声明的var
。
在一种情况下,引用全局变量很有用,window.myVar
就像您在具有名为 的局部变量的函数中一样myvar
。在那种情况下,myVar
指的是局部变量,而window.myVar
指的是全局变量。
JavaScript 中的全局变量
var no =10;
function getNo()
alert(no); // 10
}
getNo();
当设置了一个全局变量时,它会被添加到 window 对象中!
var no =10;
function getNo()
alert(window.no); // 10
}
getNo();
我们可以直接设置窗口变量。
function setNo(){
window.no=100;
}
function getNo()
alert(window.no); // 100
}
setNo();
getNo();
对于纯理论解释(因为我自己遇到了这个“问题”)和易于消化的信息,您可以将问题视为这样:
var myName = "Bob" 等于 - globalObject(Window) = { myName: "Bob" }
因此,当您声明一个变量时,该变量名称将作为属性传递给 window 对象,并将其值作为属性值传递。这就是为什么您可以将变量作为 window 对象的对象方法来调用,基本上。