函数变量的参数

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.

的一种别名