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

大佬们遇到过这个问题吗?retuen 函数 return 函数()

大佬们遇到过这个问题吗?retuen 函数 return 函数()

收到一只叮咚 2019-07-28 12:26:50
varfn=function(a,b,c){returna+b+c;}varcurry=function(fn){varlastarr=[]returnfunctioncurrying(){lastarr=lastarr.concat([].slice.call(arguments))if(lastarr.length
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

这里为什么只是currying不是currying()前一种不是只是返回currying函数但没执行吗
是的,这里返回了一个函数。
所以all=curry(fn)是一个函数,all(1)也是一个函数,all(1)(2)还是一个函数。
直到all(1)(2)(3)才真正调用了fn并返回了结果。
                            
查看完整回答
反对 回复 2019-07-28
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

是的。这里有个先决条件lastarr.lengthall(1):lastarr中追加参数1,长度为1,不执行,返回函数all(1):lastarr中追加参数1,长度为2,不执行,返回函数all(1):lastarr中追加参数1,长度为3,执行,返回值(运行fn(1,1,1),返回3)all(1):lastarr中追加参数1,长度为4,执行,返回值(运行fn(1,1,1,1),返回3)
                            
查看完整回答
反对 回复 2019-07-28
  • 2 回答
  • 0 关注
  • 356 浏览
慕课专栏
更多

添加回答

举报

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