-1

在提取了在 Javascript 中传递函数时如何处理参数的答案之后?我最终提出了一个需要澄清的问题。

在下面的示例中:

function plus2(x) { return x+2; }

var Q = function(y) { return plus2(y); }

alert(Q(10));

为什么Q使用参数 10调用会y得到值 10?

4

2 回答 2

0
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
于 2015-09-19T17:00:01.753 回答
-2

用命名函数替换匿名函数让我更清楚一点:

function plus2(x) { return x+2; }
function dummy(y) { return plus2(y); }

var Q = dummy;

alert(Q(10));

Q然后成为 的一种别名dummy

于 2015-09-19T17:00:49.270 回答