高阶函式 (Higher order function) 是什么?
高阶函式 (Higher order function) 是指当一个函式可以接受另一个函式作为参数、或者返回一个函式作为结果的函式。
这是一种函式语言程序设计 (functional programming) 的概念,不只 JavaScript,许多程式语言都有支援高阶函式,例如:Python、Swift 等。
它的重要性在于,可以帮助提高代码的模块化和可维护性,因此很常应用到不同情境中,底下是一些例子:
- 回调函式 (callback function) 包装:可以将回调函式作为参数传递给另一个函式,以实现自定义的行为。
- 抽象操作:可以将高阶函式作为封装操作的一层抽象,例如实现过滤、转换等。
- 函式组合:可以使用高阶函式组合多个函式,以创建新的函式。
高阶函式 (Higher order function) 实际例子
在 JavaScript 中,我们很常使用到的一些内建方法,其实就是高阶函式。以下举 Array.prototype.filter()
为例,并模拟写出一个新的高阶函式。
我们先来看原生的 Array.prototype.filter()
方法,它可以过滤数组中满足某些条件的元素,并返回一个新的数组。
以下代码为例, evenNumber
函式为一个回调函式,传入 filter 函式中作为参数,最终返回结果。
const numbers = [1, 2, 3, 4, 5];
const evenNumber = (item) => item