redux源码学习--compose
2018/5/11 Javascriptreactredux
compose
compose 是一个从右向左编写单参数组成的函数。最右边的函数可以接受多个参数,因为它提供了签名由此产生的复合函数。# 参数理解
{...funcs}
需要合成的多个函数。每个函数都接收一个函数作为参数,然后返回一个函数。
# 返回值
(Function)
从右到左把接收到的函数合成后的最终函数。
# 代码理解
export default function compose(...funcs) {
if (funcs.length === 0) {
return arg => arg
}
if (funcs.length === 1) {
return funcs[0]
}
//对参数进行一个累加,就是依次以右边的参数作为左边方法的参数累加到最左边
return funcs.reduce((a, b) => (...args) => a(b(...args)))
}