我正在使用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值?
答案 0 :(得分:2)
执行此操作时:
var add2 = addN(2);
变量add2
现在实际上是这样的:
function(x) {
return 2 + x;
}
因为该函数本身是addN()
的返回值。 (请注意,在JavaScript中,函数是一个可以像任何其他值一样分配给变量的值。)
所以,当你进一步这样做时:
add2(10);
您正在将10
传递给该功能,因此x
将为10
。