//函数例子
function fn1(a, b, c, d) {
return a + b + c + d
}
//柯里化函数
function currey(f) {
if (f.length <= 1) {
return f;
}
return function (...p1) {
return function recur(...p2) {
p1 = [...p1, ...p2];
if (p1.length >= f.length) {
return f(...p1)
}
return recur
}()
}
}
//检查效果
let fn2 = currey1(fn1);
console.log(fn2(1)(2)(3)(4));//10
console.log(fn2(1)(2, 3)(4));//10
console.log(fn2(1, 2, 3, 4));//10