レッスンに戻る

クロージャで合計する

重要性: 4

sum(a)(b) = a+b のように動作する関数 sum を書いてください。

はい、正確にこの通りダブル括弧で指定します(ミスタイプではありません)。

例:

sum(1)(2) = 3
sum(5)(-1) = 4

2つ目の括弧が動作するために、1つ目は関数を返さなければなりません。

このように:

function sum(a) {

  return function(b) {
    return a + b; // 外部のレキシカル環境から "a" を取る
  };

}

alert( sum(1)(2) ); // 3
alert( sum(5)(-1) ); // 4