热门搜索 :
考研考公
您的当前位置:首页正文

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

来源:东饰资讯网

compose 组合函数

  • 概念:它将需要嵌套执行的函数平铺。嵌套执行指的是,一个函数的返回值将作为另一个函数的参数
  • 作用:实现函数式编程中的 pointfree 风格(无参数),使我们专注于【转换】而不是【数据】
  • 实现:接收多个函数作为参数,从右到左,一个函数的输入为另一个函数的输出
  • 意义:编程更精练、算法更清晰、无参数干扰
  • 威力:==【任意组合】==
  • 缺点:不能直观的看到参数
  • 示例
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

Top