函数变量的参数
Parameters of a function variable
在提炼 的答案后,我得出了一个需要澄清的问题。
在下面的示例中:
function plus2(x) { return x+2; }
var Q = function(y) { return plus2(y); }
alert(Q(10));
为什么调用参数为 10 的 Q
导致 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
.
的一种别名
在提炼
在下面的示例中:
function plus2(x) { return x+2; }
var Q = function(y) { return plus2(y); }
alert(Q(10));
为什么调用参数为 10 的 Q
导致 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
.