Qual é a definição de uma função de ordem superior?
Uma função de ordem superior é qualquer função que recebe uma ou mais funções como argumentos, que ela usa para operar em algum dado e/ou retorna uma função como resultado. As funções de ordem superior têm como objetivo abstrair alguma operação que é realizada repetidamente. O exemplo clássico disso é o map, que recebe como argumentos um array e uma função. O map então usa essa função para transformar cada item no array, retornando um novo array com os dados transformados. Outros exemplos populares em JavaScript são forEach
, filter
e reduce
. Uma função de ordem superior não precisa apenas manipular arrays, pois há muitos casos de uso para retornar uma função de outra função. Function.prototype.bind
é um exemplo desse tipo em JavaScript.
Map
Vamos supor que temos um array de nomes no qual precisamos transformar cada string em maiúsculas.
A maneira imperativa seria assim:
Use .map(transformerFn)
torna o código mais curto e mais declarativo.