函数柯里化
一、是什么
把多参数函数转换为单参数函数。
二、为什么
- 参数复用
- 延迟执行
- 提高函数组合能力
三、实现原理
function curry(fn) {
return function curried(...args) {
if (args.length >= fn.length) {
return fn(...args);
}
return (...next) => curried(...args, ...next);
};
}
四、示例
function add(a, b, c) {
return a + b + c;
}
const curried = curry(add);
curried(1)(2)(3); // 6
五、总结
- 柯里化核心:收集参数
- 常用于函数式编程