JavaScript如何将值传递给声明中的函数表达式?
我正在使用Head-First JavaScript,并提供了一个示例:JavaScript如何将值传递给声明中的函数表达式?,javascript,function,Javascript,Function,我正在使用Head-First JavaScript,并提供了一个示例: 函数地址(n){ var加法器=函数(x){ 返回n+x; }; 返回加法器; } var add2=addN(2); 控制台日志(add2(10)); 控制台日志(add2(100))执行此操作时: var add2 = addN(2); 变量add2现在实际上是: function(x) { return 2 + x; } 因为该函数本身是addN()的返回值。(请注意,在JavaScript中,函数是一
函数地址(n){
var加法器=函数(x){
返回n+x;
};
返回加法器;
}
var add2=addN(2);
控制台日志(add2(10));
控制台日志(add2(100))代码>执行此操作时:
var add2 = addN(2);
变量add2
现在实际上是:
function(x) {
return 2 + x;
}
因为该函数本身是addN()
的返回值。(请注意,在JavaScript中,函数是一个可以像任何其他值一样分配给变量的值。)
因此,当您进一步这样做时:
add2(10);
您正在将10
传递给该函数,因此执行此操作时,x
将10
:
var add2 = addN(2);
变量add2
现在实际上是:
function(x) {
return 2 + x;
}
因为该函数本身是addN()
的返回值。(请注意,在JavaScript中,函数是一个可以像任何其他值一样分配给变量的值。)
因此,当您进一步这样做时:
add2(10);
您正在将10
传递给该函数,因此x
将在add2(10)
中10,10
被分配给变量x
add2=函数(x){return 2+x;}
addN
返回一个函数。您的问题就像询问为什么在var add2=addN(2)之前没有为参数n
赋值代码>行。在add2(10)
中,10
被分配给变量x
add2=函数(x){return 2+x;}
addN
返回一个函数。您的问题就像询问为什么在var add2=addN(2)之前没有为参数n
赋值代码>行。