采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好, 左边在执行fn=create()后产生闭包,如果调用fn会引用a=100,此时内存会一直存在a=100这个变量。 右边代码在执行结束后,内存是不存在a=200这个变量的,请问是这样吗? 所以多次执行create()并赋值给不同变量会造成内存泄漏,而多次执行print(fn)不会造成内存泄漏,请问可以这么理解吗?
正常的闭包不会产生内存泄漏。内存持续占用,并不是内存泄漏,这是俩概念。
PS:如果你工作经验、实践经验还不多,就先别要求自己去熟悉这些原理,否则你会学习效率低、很痛苦。很多其他同学也被我这样建议了。
内存泄漏简单理解:无用的内存还在占用,得不到释放和归还,注意是无用的。多次执行create()只是内存持续占用,并不代表内存泄漏,但量多了也会有性能影响,所以这也是闭包的缺点。 如不调用fn()那就是内存漏了,既非正常的闭包! 老师我可以这么理解吧?
登录后可查看更多问答,登录/注册
针对时下面试高频考点,帮助新人js面试快速通关
1.6k 17
1.8k 11
1.3k 11
1.2k 11