闭包
参考https://medium.freecodecamp.com/lets-learn-javascript-closures-66feb44f6a44#.ysftb7j8k
闭包有很多实际用处。其中一个重要的用处就是在外部作用域下维护一个私有变量.
当函数需要外部变量的时候就可以考虑了
var result = []; for (var i = 0; i < 2; i++) { result[i] = function() { console.log(i) } } result[0](); // 1 result[1](); // 1 // 闭包 for (var i = 0; i < 2; i++) { result[i] = (function(para) { return function() { console.log(para) } })(i) } // let var result = []; for (let i = 0; i < 2; i++) { result[i] = function() { console.log(i) } }
再来个demo
实现 add(1)(2)(3)=>结果是6
function add(a) { return function(b){ return function (c) { return a+b+c } } }