什么是组合函数compose?
compose是函数式编程中重要的函数,compose函数的作用是组合函数,将函数串联起来执行,一个函数的执行结果是另一个函数的执行参数,一旦一个函数执行,就像多米乐骨牌一样推倒执行。
比如:
function aFn (a) {
return a * 2
}
function bFn (b) {
return b + 3
}
const componse = function (fn1, fn2) {
return function (arg) {
return fn1(fn2(arg));
}
}
let myFn = componse(aFn, bFn);
let res = myFn(2)
console.log('res', res) //10
我们可以封装一个通用的组合函数:
const componse = function (...fns) {
return function (arg) {
return fns.reverse().reduce((acc, fn) => {
return fn(acc)
}, arg)
}
}
或者
const componse =(...fns)=>arg=>fns.reverse().reduce((acc,fn)=>fn(acc),arg)
function aFn (a) {
return a * 2
}
function bFn (b) {
return b + 3
}
let myFn = componse(aFn, bFn);
let res = myFn(2)
console.log('res', res) //10