闭包及使用场景

什么是闭包

闭包是指有权访问另一个函数作用域中变量的函数。
当函数被调用时,会创建一个执行环境和作用域链。然后,结合arguments和其他命名参数的值初始化函数的活动对象(activation object),但是在作用域链中,外部函数的活动对象始终处于第二位。

使用场景

函数作为返回值
作为返回值时,为返回的函数创建一个新的词法环境。可以为其封装私有变量、保存数据等。