js函数式编程术语之compose组合函数

2019-01-10  本文已影响16人  龙旗飘扬的舰队

compose 组合函数

var compose = function(fun1,fun2){
    return function(val){
        return fun1(fun2(val));
    }
}

var add = function(val){
  return val + "111";
}

var upperCase = function(val){
  return val.toUpperCase();
}

var double = function(val){
  return val += val;
}
// 无限组合,才是compose的威力所在
var upperCaseThenAdd = compose(add,upperCase);
var doubleThenAdd = compose(double,add);
var addThenAdd = compose(add,add);
var addThenAddThenUpperCase = compose(upperCase,addThenAdd);//注意这个函数,以组合函数addThenAdd作为其参数,很强大,有没有!

console.log(upperCaseThenAdd("china"));//CHINA111
console.log(doubleThenAdd("china"));//china111china111
console.log(addThenAdd("china"));//china111111
console.log(addThenAddThenUpperCase("china"));//CHINA111111

上一篇 下一篇

猜你喜欢

热点阅读