闭包
当内部函数被保存到外部时,将会生成闭包。
闭包会导致原有作用域链不释放,造成内存泄漏。
闭包的作用:
1.实现公有变量 例如:函数累加器
1 function add(){ 2 var count = 0; 3 function demo(){ 4 count++; 5 console.log(count); 6 } 7 return demo; 8 } 9 var counter = add(); 10 counter(); 11 counter(); 12 counter();
运行结果:
2.可以做缓存(存储结构)
1 function test(){ 2 var num =100; 3 function a(){ 4 num++; 5 console.log(num); 6 } 7 function b(){ 8 num--; 9 console.log(num); 10 } 11 return [a,b]; 12 13 } 14 var myArray = test(); 15 myArray[0](); 16 myArray[1]();
运行结果:
3.可以实现封装,属性私有化