compose函数又称组合函数,是指两个及以上的函数组合起来,从右到左执行函数并把结果传递到下一个函数直到执行完全部函数。
//例子一
const compose = function(){
const fns = Array.prototype.slice.apply(this, arguments);
retrun function(){
let val = arguments[0];
for(let i = fns.length - 1; i >= 0, i--){
val = fn[i](val);
}
return val;
}
}
//例子二
const compose = function(){
const fns = Array.prototype.slice.apply(this, arguments);
return function(){
let val = arguments[0];
fns.reverse().forEach((fn)=>{
val = fn(val);
})
return val;
}
}
//例子三
const compose2 = function(...fns){
return function(val){
return fns.reverse().reduce((prev, fn)=> fn(prev), val);
}
}
//例子四
const compose3 = (...fns) => (val) => fns.reverse().reduce((prev, fn)=> fn(prev), val);