原文: https://howtodoinjava.com/javascript/javascript-correct-way-to-define-global-variables/
我们知道什么是全局变量或常量,它们是可在应用范围内访问的字段。 在 Java 中,通常是通过定义“public static
”字段来完成的。 在这里,通过添加final
关键字,我们可以将全局变量更改为全局常量。 很容易,对吧?
但是 javascript 呢? 这些脚本语言没有这些访问修饰符等,那么我们有什么选择呢?
我在正常工作时间遇到了类似的情况,并且知道以传统的 javascript 方式定义全局变量会破坏生产代码。 传统方式是:
var iAmGlobal = "some val"; //Global variable declaration
//Any place in other part of code
function doSomething()
{
//iAmGlobal = "changed value";
alert(iAmGlobal); //I am accessible here too !!
}
这些类型实际上是在很长一段时间内声明的,对于一些不幸的伙伴来说,它会导致 Java 脚本中出现著名的“对象不支持此属性或方法”错误。 如果您还记得一个 IE 错误,它带有“var a = foo
”,则仅声明了文件范围的全局变量。 这是 IE 臭名昭著的解释器的问题。
那么,在 JavaScript 中声明全局变量的正确方法是什么?
在 JavaScript 中声明全局变量的正确方法
正确的方法是使用窗口对象。 并使用如下语法:
var window.iAmGlobal = "some val"; //Global variable declaration with window.
//Any place in other part of code
function doSomething()
{
alert(window.iAmGlobal); //I am accessible here too !!
//OR
alert(iAmGlobal); //I am accessible here too !!
}
通过以这种方式定义全局变量,您将使 JavaScript 更加健壮和可靠。
要点:
- 使用
window
关键字以“window.VAR_NAME
”的形式定义全局变量 - 您可以使用“
window.VAR_NAME
”或直接“VAR_NAME
”访问变量 - 不要使用同名的其他变量,否则可能会导致不良结果。
所有人都在这个话题上。
进一步阅读: http://stackoverflow.com/questions/4862193/javascript-global-variables
学习愉快!