有人能解释一下这段代码是如何工作的吗?
function makeAdder(x) {
return function(y) {
return x + y;
};
}
var add5 = makeAdder(5);
var add10 = makeAdder(10);
console.log(add5(2)); // 7
console.log(add10(2)); // 12
发布于 2017-03-15 06:54:19
makeAdder(5)
X => 5和y没有值,所以x+y => 5+0 => 5
var add5 = makeAdder(5);
add5(2);
我们已经用x => 5为函数makeadder创建了变量,所以现在我们传递y => 2和x => 5,所以x+y => 5+2 => 7。
外部函数变量在内部函数中可访问的这个属性在javascript中称为闭包属性。此外,对y变量的添加对于外部函数也是不可访问的。
https://stackoverflow.com/questions/42802744
复制相似问题