函数实现 composeFunctions(fn1,fn2,fn3,fn4)等价于fn4(fn3(fn2(fn1))

Posted xfcao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数实现 composeFunctions(fn1,fn2,fn3,fn4)等价于fn4(fn3(fn2(fn1))相关的知识,希望对你有一定的参考价值。

  • 函数组合运行
  • 说明:实现一个方法,可将多个函数方法按从左到右的方式组合运行。
  • composeFunctions(fn1,fn2,fn3,fn4)等价于fn4(fn3(fn2(fn1))
  •  1 const add = x => x + 1;
     2 const multiply = (x, y) => x * y;
     3 const multiplyAdd = composeFunctions(multiply, add);
     4 
     5 function composeFunctions() {
     6     var args = Array.prototype.slice.apply(arguments);
     7     console.log(‘args‘,args)
     8     return function() {
     9         if (args.length == 1) {
    10             console.log(‘args=1‘,this)
    11             return args[0].apply(this, Array.prototype.slice.apply(arguments));
    12 
    13         }
    14         console.log(‘args!=1‘,args)
    15         return composeFunctions(...args.slice(1))(args[0].apply(this, Array.prototype.slice.apply(arguments)));
    16     }
    17 }
    18 console.log(multiplyAdd(3, 4));// 返回 13

     

以上是关于函数实现 composeFunctions(fn1,fn2,fn3,fn4)等价于fn4(fn3(fn2(fn1))的主要内容,如果未能解决你的问题,请参考以下文章

关于函数的理解

再谈闭包

对今天知识的回顾13

数据访问 JS 函数

闭包和闭包的应用场景

javascript函数的声明