闭包(Closure)指的是一个函数,这个函数捕获了定义时在其外部作用域中的一些变量。 实现闭包的通常方法是在一个函数 A 里面定义另一个函数 B,在函数 B 中可以对函数 A 的局部变量进行访问(词法作用域)。
使用闭包的目的一般有:
- 创建数据隐藏和封装实例:类似于 OOP 中的对象和方法
- 创建工厂函数:生成配置不同的函数
- 延迟计算:延迟执行某些操作
下面的例子展示了如何使用闭包维护一个局部变量的状态:
闭包(Closure)指的是一个函数,这个函数捕获了定义时在其外部作用域中的一些变量。 实现闭包的通常方法是在一个函数 A 里面定义另一个函数 B,在函数 B 中可以对函数 A 的局部变量进行访问(词法作用域)。
使用闭包的目的一般有:
下面的例子展示了如何使用闭包维护一个局部变量的状态: