我现在正在阅读有关闭包的内容,并对此javascript代码感到困惑。
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
console.log如何工作?由于add5 = makeAdder(5),所以不是 add5(2))= makeAdder(5)(2)?
我想知道y = 2是如何在这个函数中由javascript决定的,因为该函数只定义了一个参数x。
编辑:很抱歉要说清楚,我感到困惑的是它看起来像是5和2都被传递到makeAdder(x)。