闭包占用的内存

来源:6-3 什么是闭包?闭包会用在哪里?

EricTai

2022-04-14

624e74a90001cac311760662.jpg
老师您好,
左边在执行fn=create()后产生闭包,如果调用fn会引用a=100,此时内存会一直存在a=100这个变量。
右边代码在执行结束后,内存是不存在a=200这个变量的,请问是这样吗?
所以多次执行create()并赋值给不同变量会造成内存泄漏,而多次执行print(fn)不会造成内存泄漏,请问可以这么理解吗?

写回答

1回答

双越

2022-04-15

正常的闭包不会产生内存泄漏。内存持续占用,并不是内存泄漏,这是俩概念。


PS:如果你工作经验、实践经验还不多,就先别要求自己去熟悉这些原理,否则你会学习效率低、很痛苦。很多其他同学也被我这样建议了。

0
1
wibc666
内存泄漏简单理解:无用的内存还在占用,得不到释放和归还,注意是无用的。多次执行create()只是内存持续占用,并不代表内存泄漏,但量多了也会有性能影响,所以这也是闭包的缺点。 如不调用fn()那就是内存漏了,既非正常的闭包! 老师我可以这么理解吧?
2022-06-14
共1条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程