可以使用 reduce 方法来实现 compose 函数,代码如下:
const compose =(...funcs) => x => funcs.reduceRight((acc, func) => func(acc), x);
这个 compose 函数接受一个函数数组,并返回一个新的函数,该函数接受一个参数 x,然后对函数数组进行 reduceRight 操作。reduceRight 方法从数组的最后一个元素开始,依次对前一个元素执行函数,并将结果作为下一个元素的参数,最终得到一个最终的结果。
例如,我们可以使用 compose 函数来组合两个函数 f 和 g,代码如下:
const f =x => x + 1;
const g = x => x * 2;
const h = compose(f, g);
console.log(h(2)); // 5
在这个例子中,h(2) 等价于 f(g(2)),结果为 5。