1

我刚开始从EloquentJavascript学习 js 我需要 2 个答案来帮助我通过这个例子:

function makeAddFunction(amount) {
  function add(number) {
    return number + amount;
  }
  return add;
}

var addTwo = makeAddFunction(2);
var addFive = makeAddFunction(5);
show(addTwo(1) + addFive(1));

问题一:

我们可以在变量含义之后添加()来为变量所代表的函数添加参数吗?像 addTwo(1) 意味着 makeAddFunction(1)?

问题2:

makeAddFunction(2) 表示数量 = 2,那么数字的值是多少?如果我选择上述示例的一部分,下一部分将返回什么?

function makeAddFunction(2) {
  function add(number) {
    return number + 2;
  }
  return add;
}
4

2 回答 2

2

如果您查看返回类型,您的两个问题都会得到解答makeAddFunction(amount)。您正在返回一个函数add(number)。因此,通过定义addTwoas makeAddFunction(2),您将返回以下函数:

function add(number) {
    return number+2;
}

如果addTwoaddFive是函数,则 show(...) 将显示:9。(2+1)+(5+1)=9

于 2012-06-09T22:25:03.100 回答
2

我们可以在变量含义之后添加()来为变量所代表的函数添加参数吗?像 addTwo(1) 表示 makeAddFunction(1)

没有。addTwo(1)等于makeAddFunction(2)(1)

makeAddFunction(2) 表示数量 = 2,那么数字的值是多少?在以下 example2 中,将返回什么?

您另外通过它,当调用addTwoaddFive

于 2012-06-09T22:26:41.947 回答