什么是柯里化?
在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
以上是维基百科对于柯里化给出的定义,总结一下:
- 输入是一个函数,并且这个函数拥有n个参数
- 输出也是一个函数,并且可以使用
fn()()()
这种方式调用 - 参数被柯里化过程中的函数被拆分
写一个经典的用来解释柯里化的例子:
function add(a, b, c) {
return a + b + c;
}
const addTen = curry(add, 10); // curry就是后续我们将实现的 柯里化函数
addTen(1)(2) // 13
addTen(3, 4) // 17
不难看出柯里化的用途之一就是参数复用,我们可以通过柯里化的方式很方便的实现参数复用,可能这样你感觉没啥卵用,再来看下面例子:
const amount = [
{
deposit: 120, finalPayment: 200 },
{
deposit: 110