组合函数是将多个一元函数按顺序串联执行的编程模式,pipe从左到右执行如h(g(f(x))),compose从右到左执行如f(g(h(x))),提升代码可读性、复用性与可测试性。
组合函数(Function Composition)是 JavaScript 中一种将多个函数串联起来、让前一个函数的输出作为后一个函数输入的编程模式。它的核心思想是:把一系列小而专注的函数“拼装”成一个更强大的新函数,而不是写一个大而复杂的函数。
最典型的组合是右结合(compose)或左结合(pipe)。两者区别在于执行顺序:
这是最常用、也最容易理解的组合方式:
const pipe = (...fns) => (x) => fns.reduce((acc, fn) => fn(acc), x);
说明:
例子:
const add1 = (x) => x + 1; const double = (x) => x * 2; const toString = (x) => String(x);const transform = pipe(add1, double, toString); console.log(transform(3)); // "8" → (3+1)→4 → 4*2→8 → String(8)→"8"
它让代码更清晰、可复用、易测试:
、转换toString(double(add1(3))) 不如 pipe(add1, double, toString)(3) 直观组合函数不是万能的,要注意几点: