# 柯里化

只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。

—— Mostly Adequate Guide

所谓『柯里化』,就是把一个多参数的函数,转化为单参数函数,用于将一个函数拆成多个函数。

# 举例

const add = x => y => x + y;

const increment = add(1);
const addTen = add(10);

increment(2); // 3
addTen(2); // 12

这里定义了一个add函数,它接受一个参数并返回一个新的函数。调用add之后,返回的函数通过闭包的方式记住了add的第一个参数。

以上代码,表明柯里化提供了『预加载』的能力,通过传递一到两个参数调用函数,就能得到一个记住了这些参数的新函数。

注意

这里需要注意遵循一个重要的模式

即策略性地把要操作的数据放到最后一个参数

# 总结

因此函数柯里化具有如下特点:

  • 参数复用——复用闭包的参数【预加载】
  • 提前返回——返回接受余下的参数且返回结果的新函数
  • 延迟执行——返回函数,等待执行

函数式编程时,组合模式函数只接受一个参数,因此需要通过函数柯里化将多个参数函数转换为单参数函数。

最近更新时间: 2020/9/8 20:17:01