有人说在创建变量时,不指定 var 就是创建全局变量,这种说法不准确,因为这创建的并不是变量。
我们创建一个变量并赋值通常的方法是用 var:
var m = 123; 是在一个 function 中,那么它只在这个 function 中起作用。
但看下面的代码:
这个 m 就是全局的了,它影响 foo 以外。但用变量来形容它,不太准确,虽然它的应用和变量没啥区别。因为上面的代码实际上等效于下面的代码:
windows 是可以省略的,这样我们就明白了,为什么省略了 var,就是全局的了,实际上是为 window 增加了一个属性。
相关阅读