关于javascript:window与var声明变量

Window vs Var to declare variable

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Difference between using var and not using var in JavaScript
Should I use window.variable or var?

我看到了两种用JavaScript声明类的方法。

喜欢

1
window.ABC = ....

1
var ABC = ....

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


window.ABC将ABC变量作用于窗口作用域(实际上是全局作用域)。

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


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

1
2
3
4
5
6
7
8
9
function foo() {
    var a ="bar";
    window.b ="bar";
}

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


1
2
window.ABC ="abc"; //Visible outside the function
var ABC ="abc"; // Not visible outside the function.

如果您在声明变量的函数之外,那么它们是等效的。


window使变量对窗口全局化。除非您有理由这样做,否则使用var声明变量。


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