# 函数平铺
# 含义
嵌套执行指的是一个函数的返回值将作为另一个函数的参数
将需要嵌套执行的函数平铺
# 实现
const compose = function(...args) {
return function(x) {
return args.reduceRight((total, current) => {
return current(total);
}, x);
}
}
// 示例
let add = x => x+10;
let multiply = y => y*10;
console.log(multiply(add(10))); // 200
let calculate = compose(multiply, add);
console.log(calculate(10)); // 200
# 用途
- 处理的问题:一个函数的结果将作为另一个函数的参数进行调用,正常情况我们需要一个函数嵌套另一个函数
- 方案:将函数作为参数,传递给某个函数,此函数返回一个新的函数,完成上述调用
- compose将参数按照从右向左的顺序执行
- pipe将参数按照从左向右的顺序执行