猿问

请问,为什么(3)会是function(arg2)中的参数arg2?

function addTogether() {  // Function to check if a number is actually a number
  var checkNum = function(num) {    
      if (typeof num !== 'number') {      
          return undefined;
      } else{
          return num;
      }
  };  

  
  if (arguments.length > 1) {    
      var a = checkNum(arguments[0]);    
      var b = checkNum(arguments[1]);    
      if (a === undefined || b === undefined) {      
          return undefined;
      } else {      
          return a + b;
      }
  } else {  
        var c = arguments[0];
        if (checkNum(c)) {      
            return function(arg2) {
                if (c === undefined || checkNum(arg2) === undefined) {          
                    return undefined;
                } else {        
                    return c + arg2;
                }
            };
        }
  }
}

addTogether(2)(3);


Joy_Strong
浏览 1304回答 1
1回答

stone310

最后应该是addTogether(2)(3)吧。。先执行addTogether(2),执行else部分,return functon(arg2){....},相当于执行addTogether(2)的结果就是function(arg2){.....}这个函数;然后再执行则相当于function(arg2){....}(3),所以arg2这个参数就是3
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答