第四篇 手写原理代码 - 函数 【 实现 compose 函数 】

发布时间 2023-04-11 23:15:10作者: caix-1987
JavaScript 中的 Compose 函数用于组合一些函数,使得每个函数都接收上一个函数的返回值作为参数,并返回一个新的函数。可以使用这种方式把多个函数串起来,从而实现更复杂的逻辑

Comopse 函数是一个非常有用的工具,它可以帮助我们简化程序逻辑,实现代码复用,提高开发效率

实现 compose 函数

const compose = (...args) => {
  return (x) => {
    return args.reduceRight((res, cb) => {
      return cb(res);
    }, x);
  };
};

// Es6 写法
const composEs6 =
  (...args) =>
  (x) =>
    args.reduceRight((res, cb) => cb(res), x);

使用 compose 函数

function fn1(x) {
  return x + 1;
}

function fn2(x) {
  return x + 2;
}

function fn3(x) {
  return x + 3;
}

function fn4(x) {
  return x + 4;
}

const result_1 = compose(fn4, fn3, fn2, fn1);

console.log("result_1", result_1(99)); // 109