深入理解TypeScript
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.5 闭包

闭包是JavaScript最好的语法之一。在JavaScript中,闭包是指一个函数有权力访问定义在它外部作用域的任何变量。可以用下面的例子来解释闭包。

你是否注意到,内部函数有权力访问外部作用域的变量variableInOuter Function,而外部函数的变量已经被内部函数关闭(或绑定)。闭包的概念即由此而来。这个概念本身很简单,也很直观。

关键的部分是,即使在返回外部函数之后,内部函数依然可以从外部作用域中访问变量。这是因为变量始终绑定在内部函数中,并没有依赖于外部函数。让我们再一次看看这个例子。

闭包让人惊叹之处在于,它允许你轻松地组合对象,例如,使用模板模式。

而且在较高的层次上,闭包也是使像Node.js这样的运行环境成为可能的一个因素(不用担心现在不理解它,以后你会理解的)。