在javascript中使用闭包求两个参数的和

在javascript中使用闭包求两个参数的和,javascript,function,closures,Javascript,Function,Closures,我正在为freecodecamp做一个练习,我必须创建一个将两个参数相加的函数。如果只提供了一个参数,则返回一个函数,该函数需要一个参数并返回总和 例如,addTogether(2,3)应该返回5,addTogether(2)应该返回一个函数 我的代码如下: function isNumber(n) { return !isNaN(parseFloat(n)) && isFinite(n); } function isFunction(functionToCheck) {

我正在为freecodecamp做一个练习,我必须创建一个将两个参数相加的函数。如果只提供了一个参数,则返回一个函数,该函数需要一个参数并返回总和

例如,addTogether(2,3)应该返回5,addTogether(2)应该返回一个函数

我的代码如下:

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

function isFunction(functionToCheck) {
 var getType = {};
 return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}

function addTogether() {
  var args = Array.prototype.slice.call(arguments);
  var param1=args[0];

  var sum=function(){
    var argSub=Array.prototype.slice.call(arguments);
    var param2=argSub[0];
    if (isNumber(param2))
       return;
    else
      return param1+param2;
  };

  if (args.length===1){
    return sum;
  } else if (isNumber(param1)){
    return param1+args[1];
  }
}

addTogether(2,3);
当我执行时,addTogether(2)(3)应返回5,当我执行时,addTogether(2,“3”)应返回'undefined'

我想我检查参数的方式失败了。我已经尝试了许多不同的配置,我被卡住了。有什么建议吗


感谢使用闭包添加数字。很少有行被注释以给出如何调用内部函数的想法。 参考:Javascript中的闭包和IIFE。
函数和(x){
var输入=x;
功能添加(y){
返回输入+y;
}
返回添加;
}
//var sum1=总和(2);
//console.log(sum1(3));//5.

控制台日志(总和(2)(3))//5
FYI这叫咖喱。你什么意思??闭包不是吗?这是一些网站(包括developer.mozillaIt)中的定义,它使用闭包,但分解类似函数的技术称为闭包。