什么是闭包 ?
1、要想理解闭包,首先要理解Javascript中特殊变量的作用域。
2、如何从外部读取函数的内部变量?
function test() { var num = '88888'; function test2() { console.log(num) } }
在上述代码中 我们会发现,test2函数包含在test函数中,test中的所有局部变量对test2是可见的,但是test2中的局部变量对test函数是不可见的。
此时的test2函数就是闭包。
理解了下方这句话,基本就可以理解闭包了。
Javascript中函数运行在被定义的作用域里,而并不是被执行的作用域里。
使用闭包需要注意的点:
1、闭包中使用的函数的变量都保存在内存中,内存消耗大,避免滥用闭包,会造成网页的性能问题。 解决
解决方法:在退出函数之前,将不使用的局部变量全部清除
2、闭包会在父函数外边,改变父函数的值, 需要注意的是,不要随便更改父函数的值。