js 实现函数式编程组合函数compose

本文介绍了组合函数compose在函数式编程中的核心作用,通过实例演示如何将两个函数串联执行,并提供了两种实现方式。重点讲解了通用组合函数的封装和使用场景,适用于前端、后端开发者理解和实践.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是组合函数compose?

compose是函数式编程中重要的函数,compose函数的作用是组合函数,将函数串联起来执行,一个函数的执行结果是另一个函数的执行参数,一旦一个函数执行,就像多米乐骨牌一样推倒执行。

比如:

function aFn (a) {
  return a * 2
}

function bFn (b) {
  return b + 3
}

const componse = function (fn1, fn2) {
  return function (arg) {
    return fn1(fn2(arg));
  }
}

let myFn = componse(aFn, bFn);
let res = myFn(2)

console.log('res', res)   //10

我们可以封装一个通用的组合函数:

const componse = function (...fns) {
  return function (arg) {
    return fns.reverse().reduce((acc, fn) => {
      return fn(acc)
    }, arg)
  }
}
或者
const componse =(...fns)=>arg=>fns.reverse().reduce((acc,fn)=>fn(acc),arg)

function aFn (a) {
  return a * 2
}

function bFn (b) {
  return b + 3
}

let myFn = componse(aFn, bFn);
let res = myFn(2)

console.log('res', res) //10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值