js闭包会导致内存泄漏吗?

首先我们聊下啥是闭包,简单来说呢,我们写一个js方法,返回的不是一个具体的值,而是另一个函数,并且里面还包含了方法内的局部变量,闭包就产生了。

我们开发很少用闭包,ES6之前原本一些需要用闭包才能解决的问题,现在完全可以用let解决。

闭包的优点:在框架中可以延续方法中局部变量的生命周期,不污染全局作用域。

缺点就是,闭包内部的变量,是没法被回收的。注意,虽然没法被回收,但是既然你都用闭包了,你难道还指望它被回收吗?

说白了,就是一些变量本来是要写在全局作用域里面的,现在换成写在闭包里面而已。

所以,严格来说,闭包产生的变量和全局变量是一样的,是本不应该被回收的东西。而内存泄漏是指意料之外的情况,两者还是有区别的。

总结一下,良好的闭包不会导致内存泄漏,只是不会被回收而已。

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/88362.html

(0)
guozi's avatarguozi
上一篇 2024年6月3日 下午5:14
下一篇 2024年6月3日 下午5:14

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注