Open dashengzi66 opened 3 years ago
柯里化是一种函数转化方法,是 高阶函数(接收函数作为参数的函数)的一 种,它将一个接收多参数的函数转化为接 收部分参数的函数。柯里化后的函数只传 递部分参数来调用,并返回一个新的函数 去处理剩余的参数,是逐步传参的过程
cosnt currying=(fn, arr = [])=> {
let len = fn.length;//获取函数参数个数
return function (...args) {
let carr = [...arr, ...args];
if (carr.length < len) {
return currying(fn, carr);
} else {
return fn(...carr);
}
}
},
function sum(a, b, c, d, e) {
return a + b + c + d + e;
}
let r = currying(sum)(1)(2,3)(4,5)
手写call