一、什么是闭包
看到这里,首推先去看看李兵老师的《浏览器工作原理与实践》:第十课:作用域链和闭包(里面有一个作用域链的例子,牛逼)。好好去那里复习一遍,加油,加油,加油!奥利给。
根据词法作用域,内部函数可以使用外部函数的变量。其引用到的变量存储在内存之中,即使改函数执行结束pop出去了,但是还是可以通过这个闭包访问到其变量。
二、闭包有什么用
1、可以读取函数内部的变量
2、可以让这些变量的值保存在内存中。
有事没事再看看别人的文章:
my.oschina.net/u/3693769/b…
juejin.cn/post/693746…
三、使用闭包有什么需要注意的点吗
1、使用不当,会内存泄露
如果引用闭包的函数是一个全局变量,这个闭包会一直存在直到页面关闭。
如果引用闭包的函数是一个局部变量,这个闭包会JavaScript引擎执行垃圾回收时判断是否还一有没有被使用,没有的话会被垃圾回收。
所以,如果该闭包会一直使用就让它作为全局变量使用。如果不是的话,尽量让它成为一个局部变量