返回課程

使用閉包求和

重要性:4

撰寫函數 sum,其運作方式如下:sum(a)(b) = a+b

是的,就是這樣,使用雙括號(不是筆誤)。

例如

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

要讓第二個括號運作,第一個括號必須傳回一個函數。

像這樣

function sum(a) {

  return function(b) {
    return a + b; // takes "a" from the outer lexical environment
  };

}

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