js高级编程技巧之——compose函数

22 阅读2分钟

Compose

Compose 是一种函数组合的方法,它将多个函数组合成一个新的函数。这个新函数会从右到左依次执行被组合的函数。

将管道一样的函数串起来,通过一个函数执行。

1const add1 = (x) => x + 1;
const mul3 = (x) => x * 3;
const div2 = (x) => x / 2;
div2(mul3(add1(add1(0)))); //=>3

使用compose:

const composeFn = componse(add1, mul3, div2);
compose(0)

相当于 add1(mul3(div2(0)))

顺序是从后往前执行。

柯里化

柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

// 未柯里化的函数
function add(x, y) {
  return x + y;
}

// 柯里化后的函数
function curriedAdd(x) {
  return function(y) {
    return x + y;
  }
}

// 使用
console.log(add(2, 3));         // 输出: 5
console.log(curriedAdd(2)(3));  // 输出: 5

  1. 优点: a. 参数复用:可以固定某些参数,创建一个新的函数。 b. 提高适用性:使函数更加灵活。 c. 延迟执行:柯里化的函数执行是延迟的,可以在合适的时候调用。 d. 动态创建函数:可以根据不同的场景创建不同的函数。

Compose 和柯里化的关系

a. 互补性:

  • Compose 用于组合函数。
  • 柯里化用于分解函数参数。 这两种技术经常一起使用,以创建更灵活和可重用的代码。

b. 函数式编程: 两者都是函数式编程中的重要概念,用于创建更小、更纯粹的函数。

c. 提高可组合性: 柯里化可以使函数更容易被 compose。因为柯里化后的函数每次只接受一个参数,这使得它们更容易被组合。