【函数工具】compose组合式函数

1. 目的

实现函数compose,使得let composeFn = compose(fn, gn, ln)
执行composeFn(x)输出fn( gn( ln(x) ) )的执行结果

2. 通用代码

let compose = function (...funcs) {
  var length = funcs.length;
  var index = length;
  while (index--) {
    //确保每个参数都是函数
    if (typeof funcs[index] !== "function") {
      throw new TypeError("Expected a function");
    }
  }
  return function (...args) {
    var index = length - 1;
    var result = length ? funcs[index].apply(this, args) : args[0];
    while (--index >= 0) {
      result = funcs[index].call(this, result);
    }
    return result;
  };
};
  • 有点类似于Promise将我们从callback嵌套地狱中解救一样
  • 完全可以使用lodashflowRight

3. 使用场景

  • 函数式编程,高阶函数的组合式调用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容