概念
闭包就是一个函数返回另一个函数;
作用
①保护
函数之间会形成一个不受外部干扰的私有作用域,适合模块开发使用(es6,common JS)
②保存
当一个函数返回另一个引用数据类型,当返回的引用数据类型被外界接收,就会形成一个不销毁的作用域,这样就会一直存在于堆内存(浏览器)中,很容易 (不是一定)造成内存泄漏 (浏览器无法回收代码的内存;object或者array);
是不是所有闭包都会造成内存泄漏?
并不是,会不会内存泄漏,取决于其有没有被外界所接收;
如果一个函数类型返回一个引用数据类型
垃圾回收算法:就是垃圾收集器按照固定的时间间隔,周期性地寻找那些不再使用的变量,然后将其清楚或释放内存。
现在基本都是标记清除,标记整理和引用计数;
如果不清楚就去看这个https://juejin.cn/post/7038593947995734030
标签:闭包,泄漏,函数,数据类型,理解,内存,作用,引用 From: https://www.cnblogs.com/lpq2022/p/17137636.html