Mark---JavaScript 闭包

关于闭包是什么,阮一峰讲的已经很清楚 http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html

然后来说说闭包有什么用处:

书上说,当一个闭包捕获变量,它一定程度上还能继续存在

1. 捕获自由变量

1 function makeAdd(Capture){
2   return function(other){
3     return other + Capture;
4   };
5 }
6 var add_10 = makeAdd(10);
7 console.log(add_10(98)); // 108

add_10在定义时将 capture = 10 捕获,并且参数10一直保存在匿名函数中。闭包给了参数(变量)10永远的生命。

这里闭包就可以完成变量A和变量B的各种操作,其中,B是初始化后就不会改变的静态值(也可以是函数)。

这样就可以利用闭包去定义某些方法,捕获各种变量(比如私有变量)。

 

2.遮蔽(变量短路)

  在闭包内用相同的变量名覆盖上一层的变量的值,目前没发现有啥实际用处。平时这样写代码只会被骂。

posted @ 2017-03-02 13:55  不会写超过三篇博客  阅读(143)  评论(0)    收藏  举报