定义
一个函数的 参数 或 返回值 是函数,这个函数就是高阶函数
function hof(a, b, fn){
return fn(a) + fn(b)
}
function square(x){
return Math.pow(x, 2);
}
hof(2, 3, square); // 13
- 参数是函数
- 从功能的角度,抽离一部分业务逻辑,为了实现函数的单一职责原则
- 参数是业务逻辑的抽离
- 返回值是函数
- 数组的扩展方法
- map 数据处理函数
- reduce 归纳函数
- sort
- …
- String.prototype.replace
- setTimeout 计时器
-
高阶函数的好处
抽象
- 抽象成完全独立的函数体
- 相互依赖的程序体
- 函数执行完回调
如果高阶函数的功能只是调用函数,就没有必要使用高阶函数