闭包形式上说,就是一个函数内部 包含一个函数 ,里面的函数可以访问外面函数的变量,外面的函数不能访问里面函数的变量(作用域链只能向上级寻找)
function makeAdder(a) {
return function(b) {
return a + b;
}
}
var x = makeAdder(5);
var y = makeAdder(20);
console.log(x(6));
console.log(y(7));
结果
在使用x()函数的时候,参数是5 (a=5) 这样看着应该清晰好多