- 面试题:你知道闭包吗? || 你给我解释一下闭包? || 什么是闭包?
- 闭包有广义和狭义之分,广义的是函数内部用到了外部变量;一般讲是狭义闭包:内部函数用到了外部函数的局部变量
- 一般用闭包是为了解决数据安全的问题:全局变量容易被污染,局部无法操作,外部函数返回内部函数实现闭包:外部函数负责提供数据,内部负责逻辑处理
- 缺点:会占用内存,原因是内部函数占用了外部函数的变量,而内部函数又被返回给外部变量,导致产生占用链条,垃圾回收机制无法回收
- 解决方案(闭包要释放):只要解决源头:占用内部函数的变量释放掉即可。一般情况下,不会释放,很有可能返回的函数外部需要多次调用