原文: https://howtodoinjava.com/javascript/javascript-correct-way-to-define-global-variables/

我们知道什么是全局变量或常量,它们是可在应用范围内访问的字段。 在 Java 中,通常是通过定义“public static”字段来完成的。 在这里,通过添加final关键字,我们可以将全局变量更改为全局常量。 很容易,对吧?

但是 javascript 呢? 这些脚本语言没有这些访问修饰符等,那么我们有什么选择呢?

JavaScript:定义全局变量的正确方法 - 图1

我在正常工作时间遇到了类似的情况,并且知道以传统的 javascript 方式定义全局变量会破坏生产代码。 传统方式是:

  1. var iAmGlobal = "some val"; //Global variable declaration
  2. //Any place in other part of code
  3. function doSomething()
  4. {
  5. //iAmGlobal = "changed value";
  6. alert(iAmGlobal); //I am accessible here too !!
  7. }

这些类型实际上是在很长一段时间内声明的,对于一些不幸的伙伴来说,它会导致 Java 脚本中出现著名的“对象不支持此属性或方法”错误。 如果您还记得一个 IE 错误,它带有“var a = foo”,则仅声明了文件范围的全局变量。 这是 IE 臭名昭著的解释器的问题。

那么,在 JavaScript 中声明全局变量的正确方法是什么?

在 JavaScript 中声明全局变量的正确方法

正确的方法是使用窗口对象。 并使用如下语法:

  1. var window.iAmGlobal = "some val"; //Global variable declaration with window.
  2. //Any place in other part of code
  3. function doSomething()
  4. {
  5. alert(window.iAmGlobal); //I am accessible here too !!
  6. //OR
  7. alert(iAmGlobal); //I am accessible here too !!
  8. }

通过以这种方式定义全局变量,您将使 JavaScript 更加健壮和可靠。

要点:

  1. 使用window关键字以“window.VAR_NAME”的形式定义全局变量
  2. 您可以使用“window.VAR_NAME”或直接“VAR_NAME”访问变量
  3. 不要使用同名的其他变量,否则可能会导致不良结果。

所有人都在这个话题上。

进一步阅读http://stackoverflow.com/questions/4862193/javascript-global-variables

学习愉快!