你可以使用如下的代码来实现 reduce 函数的 compose:
const compose =(...fns) => x => fns.reduceRight((acc, fn) => fn(acc), x);
这个函数接受多个函数作为参数,并返回一个新的函数。新函数接受一个参数 x
,并使用 reduceRight 方法对所有的函数进行反向组合。
例如,你可以这样使用这个函数:
const add =x => x + 1;
const multiply = (x, y) => x * y;
const addAndMultiply = compose(multiply, add);
console.log(addAndMultiply(3, 4)); // 输出:16
这个函数的输出是 (3 + 1) * 4
,即 16。