闭包
1 function a() { 2 var n = 0; 3 return function b() { 4 n++; 5 console.log(n) 6 } 7 } 8 var c = a(); 9 c(); 10 c();
b()就是闭包。
闭包就是能够读取其他函数内部变量的函数。
一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中,不会在c()调用后被自动清除。
由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题。所以,在退出函数时,应删除不用的局部变量。(主动把函数赋值为null,就是销毁了该函数,然后释放了该闭包)