这个关闭发生了什么?

时间:2014-07-07 14:50:00

标签: javascript closures

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

var by10 = makeMultiplier(10);
console.log(by10(7));

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

1 个答案:

答案 0 :(得分: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.

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