Skip to content

柯里化

🕒 Published at:

柯里化的理解

柯里化是函数式编程的一个过程,在这个过程中,我们能把一个带有多个参数的函数转换成一系列的嵌套函数。它返回一个新函数,这个新的函数期望传入下一个参数。

柯里化的过程可以把一个多参数函数转换为一系列只带单个参数的函数

柯里化的应用

  1. 编写小模块的代码,可以更轻松的重用和配置,就像npm module做的那样
  2. 避免频繁调用具有相同参数的函数

通用柯里化函数

js
function curry(fn: Function): Function {
  const g = (...allArgs: unknown[]) =>
    allArgs.length >= fn.length
      ? fn(...allArgs)
      : (...args: unknown[]) => g(...allArgs, ...args)
  return g
}

偏函数

偏函数是 JS 函数柯里化运算的一种特定应用场景。简单描述,就是把一个函数的某些参数先固化,也就是设置默认值,返回一个新的函数,在新函数中继续接收剩余参数,这样调用这个新函数会更简单。

使用Function.prototype.bind()方法也可以实现偏函数的效果