- 函数内部访问全局变量
- 函数外部不能直接访问局部变量
- 函数外部访问局部变量
- 保护私有成员
- 持久性
- 模块化
- 抽象性
闭包是 JavaScript 的重要特性,非常强大,可用于执行复杂的计算,可并不容易理解,尤其是对之前从事面向对象编程的人来说,对 JavaScript 认识和编程显得更难。特别是在看一些开源的 JavaScript 代码时感觉尤其如此,跟看天书没什么区别。
一般情况下,人们认识一个事物,会根据之前的经验,进行对比和总结,在脑中建立一个模型,从而理解掌握它,但是 JavaScript 与面向对象编程实在“没有可比性”,最明显的是某过于语法,总觉得“怪怪的”,更不用说,一些高级特性。
因此,从闭包可以做什么开始,将有助于进一步理解闭包。
函数内部访问全局变量
函数内部可以访问全局变量,如下所示:
var baz = 10;
function foo() {
alert(baz);
}
foo();