美文网首页前端大杂烩
JavaScript 合成函数

JavaScript 合成函数

作者: lio_zero | 来源:发表于2021-05-03 16:39 被阅读0次

合成函数指的是将多个函数合成为一个函数。

在 JS 函数式编程中,你可以经常看到如下表达式运算。

a(b(c(x)))

这看起来很不雅观,为了解决函数多层调用的嵌套问题,我们需要用到函数合成。其语法格式如下:

const f = compose(a, b, c)  // 合成函数 f(x)

我们使用昨天写的 如何在 JavaScript 中使用管道(管道运算符)? 中的示例:

const compose = f => g => x => f(g(x))

const toLowerCase = (str) => str.toLowerCase()
const addHyphens = (str) => str.replace(/\s/g, '-')

const title = 'Front End Interview'
compose(toLowerCase)(addHyphens)(title) // "front-end-interview"

正如你所看到的,compose 函数的作用就是将两个函数合成为一个。compose 将两个函数串联起来执行,toLowerCase 函数返回的结果会传递给下一个函数 addHyphens 中作为参数。

另一个示例:

// 从右到左组合函数
const compose = (...fns) => x => fns.reduceRight((y, f) => f(y), x)

const lowercase = (str) => str.toLowerCase()
const capitalize = (str) => `${str.charAt(0).toUpperCase()}${str.slice(1)}`
const reverse = (str) => str.split('').reverse().join('')

const fn = compose(reverse, capitalize, lowercase)

// 我们将按顺序执行 lowercase,capitalize 和 reverse
fn('Hello World') //  'dlrow olleH'

更多资料

相关文章

  • JavaScript 合成函数

    函数合成(function composition)指的是将多个函数合成为一个函数。 在 JS 函数式编程中,你可...

  • Javascript 函数缺省值

    Javascript 函数 Javascript 函数缺省值写法

  • JavaScript函数式编程

    读完《JavaScript函数式编程》《JavaScript函数式编程指南》这两本书,对JavaScript函数式...

  • JavaScript函数式编程

    读完《JavaScript函数式编程》《JavaScript函数式编程指南》这两本书,对JavaScript函数式...

  • JavaScript函数

    layout: posttitle: JavaScript函数tags: [JavaScript, 函数]auth...

  • JavaScript encodeURI() 函数

    JavaScript encodeURI() 函数 JavaScript 全局函数](https://www.ru...

  • JavaScript中的函数

    @(javascript)[js函数] [toc] JavaScript中的函数 函数的分类与定义函数的方式 Ja...

  • JavaScript语言基础(二)

    JavaScript内置函数,这些函数都是由JavaScript语言自身提供,是JavaScript全局方法。pa...

  • JavaScript - 函数 - 1

    #JavaScript 函数定义 JavaScript 使用关键字 function 定义函数。函数可以通过声明定...

  • Xcode 实用小技巧

    1 class成员构造函数生成 Swift 可以为 struct 合成成员构造函数,但不能为 class 合成。X...

网友评论

    本文标题:JavaScript 合成函数

    本文链接:https://www.haomeiwen.com/subject/hywfdltx.html