实现一个compose 函数

242 阅读1分钟

学习redex 的时候, 会看到 applyMiddleware 是怎么把多个函数合并成一个的, 通过查阅资料有了理解

     function compose(...funcs) {
         if(funcs.length === 0) {
             return args => args;
         }
         
         if(funcs.length === 1) {
             return funcs[0]
         }
         
         return funcs.reduce((a, b) => (...args) => (a(b(...args))));
     }