这个关闭发生了什么?

Zac*_*ack 0 javascript closures

function makeMultiplier(x){
        return function(y) {
            return x * y;
    }
}

var by10 = makeMultiplier(10);
console.log(by10(7));
Run Code Online (Sandbox Code Playgroud)

当make multiplier只接受一个参数时,如何传入两个参数?我不确定这种语法是如何工作的.

Mat*_*att 5

当make multiplier只接受一个参数时,如何传入两个参数?

因为makeMultiplier()返回一个函数.


function makeMultiplier(x){
    return function(y) {
        return x * y;
    }
}

var by10 = makeMultiplier(10); // by10 is now function (y) { return x * y }, with x bound to 10.
console.log(by10(7)); // So now we can call it like a function.
Run Code Online (Sandbox Code Playgroud)

我今天巧合地回答了这个关于函数返回函数的问题.它可能有所帮助.