闭包

            闭包

  当内部函数被保存到外部时,将会生成闭包。

  闭包会导致原有作用域链不释放,造成内存泄漏。

闭包的作用:

  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.可以实现封装,属性私有化

 

posted on 2018-09-06 09:07  一颗豆豆  阅读(86)  评论(0编辑  收藏  举报

导航