【问题标题】:Window vs Var to declare variable [duplicate]Window vs Var声明变量[重复]
【发布时间】:2011-10-28 07:32:06
【问题描述】:

可能重复:
Difference between using var and not using var in JavaScript
Should I use window.variable or var?

我见过两种在 javascript 中声明类的方法。

喜欢

window.ABC = ....

var ABC = ....

在使用类/变量方面有什么不同吗?

【问题讨论】:

  • JavaScript 中没有类。您只是在声明一个变量。请提供更多信息。

标签: javascript


【解决方案1】:

window.ABC 将 ABC 变量的范围限定为窗口范围(实际上是全局的。)

var ABC 将 ABC 变量的范围限定为 ABC 变量所在的任何函数。

【讨论】:

  • 如果我在所有函数之外(即在脚本中但不在任何函数中)声明 window.var,那么这也会创建一个全局变量。那么,在这种情况下,window.var 和 var 之间有什么区别吗??
【解决方案2】:

var 为当前作用域创建一个变量。因此,如果您在函数中执行此操作,则将无法在其外部访问它。

function foo() {
    var a = "bar";
    window.b = "bar";
}

foo();
alert(typeof a); //undefined
alert(typeof b); //string
alert(this == window); //true

【讨论】:

    【解决方案3】:
    window.ABC = "abc"; //Visible outside the function
    var ABC = "abc"; // Not visible outside the function.
    

    如果你在声明变量的函数之外,它们是等价的。

    【讨论】:

      【解决方案4】:

      window 使变量成为窗口的全局变量。除非您有其他理由,否则请使用 var 声明变量。

      【讨论】:

        【解决方案5】:

        主要区别在于您的数据现在附加到窗口对象而不是仅存在于内存中。否则,它是一样的。

        【讨论】:

          猜你喜欢
          • 2011-05-01
          • 2015-11-12
          • 1970-01-01
          • 1970-01-01
          • 2013-07-28
          • 2019-10-14
          • 2021-09-21
          • 2011-04-23
          • 2016-01-20
          相关资源
          最近更新 更多