函数柯里化
咋一听函数柯里化贼高级,然后在了解之后就挺简单的,就是把一个多参数的函数改成闭包,不喜欢多哔哔,直接上例子
``` //用万能的add函数 //一般的add函数 function add(x, y, z) { return x + y + z; } add(1,2, 3) //6 ```函数柯里化
function curry(fn) {
const judge = (...args) => {
if(args.length === fn.length) return fn(...args); // 使用了闭包,会一直保存fn,并且函数的length是参数的个数
return (...arg) => judge(...args, ...arg);
}
}
const addcurry = curry(add);
addcurry(1)(2)(3) // 6
行百里者半九十