为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Joy_Strong 2016-09-24 16:58:55
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);
查看完整描述

1 回答

?
stone310

TA贡献361条经验 获得超191个赞

最后应该是addTogether(2)(3)吧。。

先执行addTogether(2),执行else部分,return functon(arg2){....},相当于执行addTogether(2)的结果就是function(arg2){.....}这个函数;

然后再执行则相当于function(arg2){....}(3),所以arg2这个参数就是3

查看完整回答
反对 回复 2016-09-24
  • 1 回答
  • 0 关注
  • 1302 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信