compose
compose(组合) 简介
- 从右到左把接收到的函数合成为一个最终函数
- 右边函数的返回值将作为一个参数提供给它左边的函数。即
compose(f, g, h)
变为(...args) => f(g(h(...args)))
.
function compose(...funcs: Function[]) {
if (funcs.length === 0) {
return <T>(arg: T) => arg;
}
if (funcs.length === 1) {
return funcs[0];
}
return funcs.reduce((a, b) => {
return (...args) => {
return a(b(...args));
};
});
}