高阶函数的定义是什么?
Topics
JAVASCRIPT
在GitHub上编辑
一个函数在两种情况下可以是高阶函数:一种是将一个或多个函数作为输入参数,用这些参数来操作数据;另一种是直接返回一个函数作为结果。 高阶函数是为了抽象出一些重复执行的操作。 典型的例子是 map
,它以数组和函数作为参数。 map
然后使用这个函数来转换数组中的每一项,返回一个带有转换后数据的新数组。 JavaScript 中的其他流行的例子是forEach
、filter
和reduce
。 一个高阶函数并不只是需要操作数组,因为从另一个函数返回一个函数有很多方案。 Function.prototype.bind
是 JavaScript 中的一个例子。
Map
假设我们有一个包涵名字的数组,我们需要将每个字符串转换为大写字母。
const names = ['irish', 'daisy', 'anna'];
当务之急是这样做:
const transformNamesToUppercase = function (names) {const results = [];for (let i = 0; i < names.length; i++) {results.push(names[i].toUpperCase());}return results;};transformNamesToUppercase(names); // ['IRISH', 'DAISY', 'ANNA']
使用 .map(transformerFn)
让代码更短,更多地声明代码。
const transformNamesToUppercase = function (names) {return names.map((name) => name.toUpperCase());};transformNamesToUppercase(names); // ['IRISH', 'DAISY', 'ANNA']