JavaScript如何将值传递给声明中的函数表达式?

时间:2017-09-21 16:16:59

标签: javascript function

我正在使用Head First JavaScript并有一个例子:



 function addN(n) {
        var adder = function(x) {
                        return n + x;
                    };
        return adder;
    }
    
    var add2 = addN(2);
    
    console.log(add2(10));
    console.log(add2(100));




addN(2)被分配给add2,但没有任何内容被分配给x。但是,在运行代码时,参数10和100显然会传递给x。 JavaScript如何知道将10和100传递给x值?

1 个答案:

答案 0 :(得分:2)

执行此操作时:

var add2 = addN(2);

变量add2现在实际上是这样的:

function(x) {
    return 2 + x;
}

因为该函数本身addN()的返回值。 (请注意,在JavaScript中,函数是一个可以像任何其他值一样分配给变量的值。)

所以,当你进一步这样做时:

add2(10);

您正在将10传递给该功能,因此x将为10