關於es6中出現的部署管道機制

最近在學習es6-函數的擴展時,其中有介紹到部署管道機制時,用到了這段代碼:

const pipeline = (...funcs) =>
            val => funcs.reduce((a, b) => b(a), val);

        const plus1 = a => a + 1;
        const mult2 = a => a * 2;
        const addThenMult = pipeline(plus1, mult2);

        console.log(addThenMult(5))  //12;

剛看到這段代碼,確實有點懵逼,小白就用es5的形式寫了出來,code以下:

var pipeline = function (...funcs) {
            return function (val) {
                return func.reduce(function (a,b) {
                    return b(a)
                },val)
            }
        }
        var plus1 = function (a) {
            return a + 1;
        }
        var mult2 = function (a) {
            return a * 2;
        }
        var addThenMult = function (param) {
            return pipeline(plus1,mult2)
        }
        console.log(addThenMult(5)) //結果以下;

然而打印出來確實pipeline方法返回的函數:

function (val) {
            return func.reduce(function (a,b) {
                return b(a)
            },val)
        }

求大神指點,小白用es5改寫後哪裏出錯了?

相關文章
相關標籤/搜索