首先先说一下闭包的定义
我的理解是,在A函数中去嵌套B函数,B函数可以读取到A函数的值,然后去对A函数的值进行操作,这个是闭包的一个核心作用,防止A函数中的值被滥用。
对于我个人而言
闭包这玩意就属于一个定义概念,你了解的不代表你会用,所以还是得自己去试过这个东西究竟在哪些场景可以用才行,核心作用还是一个防止变量在整个js中被滥用,导致变量不知道被谁所影响。但是据我所了解到的而言,闭包容易消耗内存,其他的还不是太了解
关于闭包的谣言
闭包会造成内存泄露?
错。
说这话的人根本不知道什么是内存泄露。内存泄露是指你用不到(访问不到)的变量,依然占居着内存空间,不能被再次利用起来。
闭包里面的变量明明就是我们需要的变量(lives),凭什么说是内存泄露?
这个谣言是如何来的?
因为 IE。IE 有 bug,IE 在我们使用完闭包之后,依然回收不了闭包里面引用的变量。
这是 IE 的问题,不是闭包的问题。