采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
function create() { let a = 100 return function () { console.log(a) } } let fn = create() fn() // 这里的 fn 函数执行完成以后,create 函数作用域里变量 a 会被释放吗?
不会。
闭包的数据,永远不会被释放。
老师这个不对吧,后面再跟上fn = null;应该就好了?这样解决内存泄漏,还能释放内部函数
fn = null 也不行。而且,闭包数据不释放,并不是内存泄漏。
https://segmentfault.com/q/1010000020309203 老师我看网上的讨论说的是没有保存这个函数的引用了,这个函数和函数所形成的闭包也就会被一并销毁。
登录后可查看更多问答,登录/注册
针对时下面试高频考点,帮助新人js面试快速通关
1.6k 17
1.8k 11
1.3k 11