科里化函数实现以及应用场景讲解
封装实现:
https://juejin.cn/post/7111902909796712455
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | //函数柯里化封装(这个封装可以直接复制走使用) function curry(fn, args) { var length = fn.length; var args = args || []; return function () { newArgs = args.concat(Array.prototype.slice.call(arguments)); if (newArgs.length < length) { return curry.call( this , fn, newArgs); } else { return fn.apply( this , newArgs); } } } //需要被柯里化的函数 function multiFn(a, b, c) { return a * b * c; } //multi是柯里化之后的函数 var multi = curry(multiFn); console.log(multi(2)(3)(4)); console.log(multi(2, 3, 4)); console.log(multi(2)(3, 4)); console.log(multi(2, 3)(4)); |
https://juejin.cn/post/7111902909796712455
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步