Heigher-order function

定义

一个函数的 参数 返回值 是函数,这个函数就是高阶函数

  1. function hof(a, b, fn){
  2. return fn(a) + fn(b)
  3. }
  4. function square(x){
  5. return Math.pow(x, 2);
  6. }
  7. hof(2, 3, square); // 13
  1. 参数是函数
    1. 从功能的角度,抽离一部分业务逻辑,为了实现函数的单一职责原则
    2. 参数是业务逻辑的抽离
  2. 返回值是函数
    1. 同步回调 / 异步回调
    2. 输入到输出的映射
    3. 功能的延续
    4. 收集参数

      在JavaScript常见的高阶函数

  • 数组的扩展方法
    • map 数据处理函数
    • reduce 归纳函数
    • sort
  • String.prototype.replace
  • setTimeout 计时器
  • 防抖 、节流

    高阶函数的好处

  • 抽象

    • 抽象成完全独立的函数体
    • 相互依赖的程序体
  • 函数执行完回调

如果高阶函数的功能只是调用函数,就没有必要使用高阶函数