函数柯里化
大约 1 分钟
函数柯里化
函数柯里化是将一个多参数的函数转换为一系列单参数的函数,每个单参数函数都可以接收一个参数,并返回一个新的函数。柯里化可以使函数更加灵活和可重用,避免重复的代码
- 优点:函数更加灵活和可重用,可以避免重复的代码
- 缺点:可能会降低性能,增加代码复杂度
下面让我们来举一个简单的例子
// 原始函数
function add(a, b, c) {
return a + b + c;
}
// 使用函数柯里化转换的新函数
function curriedAdd(a) {
return function(b) {
return function(c) {
return a + b + c;
}
}
}
// 使用原始函数
const result1 = add(1, 2, 3); // 结果为 6
// 使用柯里化后的函数
const curriedResult = curriedAdd(1)(2)(3); // 结果为 6
聪明的你一定看懂了,那我们再进阶一下
// 原始函数
function add(a, b, c) {
return a + b + c;
}
// 柯里化函数
function curryAdd(a) {
return function(b) {
return function(c) {
return a + b + c;
};
};
}
// 使用柯里化函数进行部分应用
const addTwo = curryAdd(2); // 固定第一个参数为2
const addFive = addTwo(3); // 固定第二个参数为3
console.log(addTwo(3)(4)); // 输出: 9
console.log(addFive(5)); // 输出: 10