函数柯里化 - js篇

文章目录

  • 一、什么是函数柯里化
  • 二、简单的函数柯里化案列
  • 三、函数柯里化的作用和特点
    • 1.参数复用
    • 2.提前返回
    • 3.延迟执行
  • 四、函数柯里化的好处

一、什么是函数柯里化

  • Javascript高级程序设计(第3版):用于创建已经设置好了一个或多个参数的函数。基本方法是使用一个闭包返回一个函数。
  • 维基百科:柯里化(英语:Currying),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
  • 官方解释看得有点懵,大白话概括一下:
    用大白话来说就是只传递给函数一部分参数来调用它,让它返回一个新函数去处理剩下的参数。
  • 更简单一点就是:
    输入是一个函数,并且这个函数拥有n个参数
    输出也是一个函数,并且可以使用fn()()()这种方式调用
    参数被柯里化过程中的函数被拆分

二、简单的函数柯里化案列

//普通函数
const sum= (x, y, z)=> {
  return x + y + z
}
//函数柯里化
const sum = x=>{
  return function(y) {
    return function(z) {
      return x + y + z
    }
  }
}
//普通函数调用
sum(1,2,3)
// 函数柯里化调用
sum(1)(2)(3)
const fn = sum(1)
const fn1 = fn(2)
fn1(3)

三、函数柯里化的作用和特点

1.参数复用

有的时候同一种规则可能会反复使用(比如校验手机的参数),这就造成了代码的重复,利用柯里化就能够消除重复,达到复用参数的目的。
柯里化的一种重要思想:降低适用范围,提高适用性

2.提前返回

提前返回或者说提前确认,函数柯里化后可以提前处理部分任务,返回一个函数处理其他任务

3.延迟执行

返回的函数都不会立即执行,而是等待调用。

四、函数柯里化的好处

  1. 可以把函数式编程变得简洁,没有冗余。
  2. 尽管有多个参数,仍然可以保留数学函数的定义。
  3. 可以将函数作为返回值输出,提前返回。

留下足迹~
参考地址 简书- @一生唯有你

你可能感兴趣的:(前端,js,javascript,前端,开发语言)