在提取了在 Javascript 中传递函数时如何处理参数的答案之后?我最终提出了一个需要澄清的问题。
在下面的示例中:
function plus2(x) { return x+2; }
var Q = function(y) { return plus2(y); }
alert(Q(10));
为什么Q
使用参数 10调用会y
得到值 10?
在提取了在 Javascript 中传递函数时如何处理参数的答案之后?我最终提出了一个需要澄清的问题。
在下面的示例中:
function plus2(x) { return x+2; }
var Q = function(y) { return plus2(y); }
alert(Q(10));
为什么Q
使用参数 10调用会y
得到值 10?
function plus2(x) { return x+2; }
var Q = function(y) { return plus2(y); }
alert(Q(10));
将警报 12.y
是 10,因为它是值 10,它作为参数传递,然后分配给函数参数y
。相等的
var y = 10; // call of Q
var x = y; call of plus2 in Q
x = x + 2;
y = x; // return of plus2
alert y; // return of Q
用命名函数替换匿名函数让我更清楚一点:
function plus2(x) { return x+2; }
function dummy(y) { return plus2(y); }
var Q = dummy;
alert(Q(10));
Q
然后成为 的一种别名dummy
。