2020-01-21
描述
对集合中的函数从左到右依次执行。
提示
- 使用
Array.prototype.reduce()
从左到右依次执行集合中的函数 - 第一个(最左边)的函数可以接受一个或者多个参数
- 剩余的函数只能接受上一个函数的执行的结果作为参数
代码
const composeRight = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args)));
示例
先加再乘:
const add = (x, y) => x + y;
const square = x => x * x;
const addAndSquare = composeRight(add, square);
addAndSquare(1, 2); // 9