Bil*_*ljk 7 javascript private function global-variables local
我目前正在阅读一本关于Javascript by Pragmatic的书,我对一件事感到困惑.他们有一节介绍如何使变量全局,本地或私有.
本地变量和私有变量有什么区别?有吗?
如何将变量设为全局变量或局部变量,他们说过将'var ='放在它之前,但它非常模糊.
没有,人们使用"私人",因为他们错了,并且意味着说"本地"
局部变量定义为
var foo = "local";
全局变量是全局范围对象的属性(window在浏览器中)
window.foo = "global";
你可以在foo = "global";没有首先分配变量foo的情况下做的事情var foo就是"bug".这是在ES5严格模式下修复的.
(function () { "use strict"; foo = 42; })()
给 ReferenceError: foo is not defined
请注意,您可以通过在最外层范围内声明变量来使变量成为全局变量
var foo = "global";
function bar() {
var foo = "local";
}
Run Code Online (Sandbox Code Playgroud)
应该注意的是,您不应该在最外层的范围内拥有任何代码.您应该将所有范围包装在匿名函数中,以便获得"模块级范围".这意味着您拥有基于每个文件的顶级范围.这是模块模式的一部分.