使用javascript闭包添加两个数字

时间:2016-05-06 15:06:26

标签: javascript closures

我如何使用闭包来实现这个?

addTogether(2)(3);

我还需要相同的函数来返回正常添加,因为addTogether(2,3)返回5.

1 个答案:

答案 0 :(得分:6)

你可以这样写:

function addTogether(a, b) {
  if (b === undefined) {
    return function (b) { return a + b; }
  } else {
    return a + b;
  }
}

但是,返回某个功能或号码会让您的用户感到困惑(充其量)。我建议总是返回一个函数,但允许在没有参数的情况下调用它(只是稍好一点):

function addTogether(a, b) {
  if (b === undefined) {
    return function (c) { return a + c; }
  } else {
    return function ( ) { return a + b; }
  }
}