function add(x, y, z) {
return x + y +z
}
function currying(fn) {
function curry(...args) {
if(args.length >= fn.length) {
return fn.apply(this, args)
} else {
//没有达到参数的长度,返回新的函数
return function(...args2) {
// 需要递归调用curry来调用参数个数是否达到
return curry.apply(this,[...args,...args2])
}
}
}
return curry
}
let curry = currying(add)
console.log(curry(1,2,3))
console.log(curry(1)(2)(3))
console.log(curry(1,2)(3))
柯里化函数的实现
最新推荐文章于 2024-08-12 22:28:07 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)