柯里化
- 柯里化,是函数式编程的一个重要概念。它既能减少代码冗余,也能增加可读性
1.举例
- 一个累加函数
sum 是个简单的累加函数,接受3个参数,输出累加的结果。
function sum (a, b, c) {
console.log(a + b + c);
}
sum(1, 2, 3); // 6
- 假设
sum的前2个参数保持不变,最后一个参数可以随意。那么就会想到,在函数内,是否可以把前2个参数的相加过程,给抽离出来,因为参数都是相同的,没必要每次都做运算
——调用的写法可以是这样:sum(1, 2)(3)
先把前2个参数的运算结果拿到后,再与第3个参数相加,这就是柯里化的简单应用 - 理解:sum(1,2)(3)
1.sum(1, 2) 返回的应该还是个函数,因为后面还有 (3) 需要执行。
2.那么反过来,从最后一个参数,从右往左看,它的左侧必然是一个函数。