如何通过在javascript中一起使用函数和闭包来获得相同的结果

Use*_*123 6 javascript

我需要进行以下(下面)函数调用,以在两种情况下给出相同的结果:

sum(5,4);   // 9
sum(5)(4);   // this should also print 9
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但它不起作用:

function sum(x,y){

   var a = x;
   var b = y;

   if (y == undefined && y == ''){
   return function (a,b){
      return a +b;
      }
   }
   else {
     return a +b;
   }

 }
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Raj*_*amy 4

尝试curry您的功能以满足您的要求,

function sum(x,y){
  if(y === undefined){
    return function(y){ return x+y; }
  } else { 
      return x + y; 
  }
}

sum(5,4);   // 9
sum(5)(4);  // 9
Run Code Online (Sandbox Code Playgroud)