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.遮蔽(变量短路)
在闭包内用相同的变量名覆盖上一层的变量的值,目前没发现有啥实际用处。平时这样写代码只会被骂。

浙公网安备 33010602011771号