大佬们遇到过这个问题吗?retuen 函数 return 函数()大佬们有什么好的建议?

varfn=function(a,b,c){
returna+b+c;
}
varcurry=function(fn){
varlastarr=[]
returnfunctioncurrying(){
lastarr=lastarr.concat([].slice.call(arguments))
if(lastarr.lengthconsole.log(currying);
returncurrying========这里为什么只是currying不是currying()前一种不是只是返回currying函数但没执行吗
}
returnfn.apply(arguments,lastarr)
}
}
varall=curry(fn)
console.log(all(1)(2)(3));
波斯汪
浏览 183回答 2
2回答

慕运维8079593

这里为什么只是currying不是currying()前一种不是只是返回currying函数但没执行吗是的,这里返回了一个函数。所以all=curry(fn)是一个函数,all(1)也是一个函数,all(1)(2)还是一个函数。直到all(1)(2)(3)才真正调用了fn并返回了结果。

白衣非少年

是的。这里有个先决条件lastarr.length
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript