大佬们遇到过这个问题吗?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));
收到一只叮咚
浏览 357回答 2
2回答

杨魅力

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

牛魔王的故事

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

相关分类

JavaScript