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));

質問1:

変数の意味の後に()を追加して、変数が表す関数に引数を追加できますか?addTwo(1)はmakeAddFunction(1)を意味しますか?

質問2:

makeAddFunction(2)はamount = 2を意味します。それでは、numberの値は何ですか?上記の例のセクションを選択すると、次のセクションで何が返されますか?

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

2 に答える 2

2

のリターンタイプを見ると、両方の質問に答えられますmakeAddFunction(amount)。関数を返していますadd(number)addTwoしたがって、として定義するとmakeAddFunction(2)、次の関数が返されます。

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

addTwoおよびが関数の場合addFive、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)はamount = 2を意味します。それでは、numberの値は何ですか?次のexample2では、何が返されますか?

電話addTwoまたはaddFive

于 2012-06-09T22:26:41.947 に答える