函数柯里化指:只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。
例如:
const sum = (a, b, c) => a + b + c
const curried = curry(sum)
console.log(curried(1)(2)(3)) // 6
console.log(curried(1, 3)(5)) // 9
console.log(curried(2)(4)(6)) // 12
复制代码
实现流程图:

实现代码:
function curry(fn, ...args) {
const argNum = fn.length // 函数参数的个数
return fillArgs(fn, argNum, args || [])
}
// 获取参数
function fillArgs(fn, argNum, currArgs) {
if(argNum === currArgs.length) {
return fn(...currArgs)
}
return (...args) => {
return fillArgs(fn, argNum, [...currArgs, ...args])
}
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END























![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)