1 概念
是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使离开了创造它的环境也不例外。
注意:闭包被创建的时候,其实就形成了闭包,不会等到执行的时候才创建。但是我们看不到,我们只在执行的时候才能看到。
闭包本质就是一个作用域链
可以说一个函数的内部有一个函数,这个内部的函数调用了外部父函数(再外面一层也可)的参数,这个内部函数就是一个闭包。
2 闭包的好处
(1)减少全局变量
(2)减少传递给函数的参数数量
主要场景是直接调用内部函数的时候
(3)封装
3 使用闭包的注意事项
(1)对捕获的父变量只是个引用,不是复制
(2)父函数每调用一次,会产生不同的闭包
因为每次调用都产生一个新的词法环境
(3)循环中问题