ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 1、什么是闭包 JS有两链一包的说法,两链是作用域链和原型链,一包就是闭包。 ![](https://img.kancloud.cn/4b/71/4b716a45e2b32d6b2e20a6db68fad7bd_1129x288.png) 观察上述代码,调用a函数之后,会在内存中形参红色的区域;另外将a的返回值赋值给了bb,后续垃圾回收机制并不知道bb是否有用,也就是红色内存中的b函数是否有用。所以垃圾回收机制并不会回收红色的区域。 bb ==== b 不知道bb有没有用,也就是不知道b是否有用。所以垃圾回收机制不会清除内存。 这种情形就是闭包,有些时候专门把内部函数b叫做闭包函数。 闭包的特点: * 闭包会造成内存不被释放; * 闭包使得函数外部可以访问内部的变量。 # 2、应用 每隔1秒,依次输出12345; ![](https://img.kancloud.cn/a3/13/a313575981a106f2830b01bd5732759c_1001x594.png)