什么闭包,有什么特性,有什么影响,为什么用闭包

(1) 闭包是指有权访问另一个函数作用域中的变量的函数。(这与当函数被调用是会创建一个执行函数和相应的作用域链。作用域链本质上是指向变量对象的指针列表,只引用,不实际包含变量对象)。作用域链中,函数内部变量对象优先级最高,然后,由最近的外部函数依次向后排。

(2) 封闭性:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口; 持久性:一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包结构依然保存在。

(3) 缺点:由于闭包携带包含它函数的作用域,因此比其他函数占用的内存更多。

       优点:减少创建全局变量 减少传递给函数的参数量 封闭性

(4)闭包可以读取函数内部的局部变量;这些变量的值始终保存在内存中

函数执行后,函数执行环境的作用域会被销毁,但是活动对象不会销毁,只有将匿名函数销毁后才可以销毁活动对象。可以将保存函数的变量赋值为null,将可销毁匿名函数作用域。

常见创建闭包方法:在一个函数内部创建另一个函数。

原文地址:https://www.cnblogs.com/microcosm/p/6501603.html