为什么 JavaScript 不指定 var 就是全局的?

作者:vkvi 来源:ITPOW(原创) 日期:2011-2-14

有人说在创建变量时,不指定 var 就是创建全局变量,这种说法不准确,因为这创建的并不是变量。

我们创建一个变量并赋值通常的方法是用 var:

var m = 123; 是在一个 function 中,那么它只在这个 function 中起作用。

但看下面的代码:

这个 m 就是全局的了,它影响 foo 以外。但用变量来形容它,不太准确,虽然它的应用和变量没啥区别。因为上面的代码实际上等效于下面的代码:

windows 是可以省略的,这样我们就明白了,为什么省略了 var,就是全局的了,实际上是为 window 增加了一个属性。

相关阅读

相关文章