最近在學習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改寫後哪裏出錯了?