JavaScript · Intermediário · Português · Técnico
função de ordem superior
Função que recebe outra função como argumento, devolve uma função, ou ambos. Em JavaScript isso é possível porque funções são valores comuns da linguagem.
Onde usar
map, filter, reduce, addEventListener e debounce são exemplos. Em code review, bem usadas elas reduzem laços repetidos; encadeadas demais, dificultam o debug.
Em código
const vezes = (n) => (x) => x * n;
const triplo = vezes(3);
console.log([1, 2].map(triplo)); // [3, 6]Exemplos
O map é uma função de ordem superior porque recebe outra função.
Escrevi uma função de ordem superior que devolve um validador.
Cuidado
Achar que o termo vale só para funções nativas: qualquer função sua que receba ou devolva função é de ordem superior.
Sinônimos
higher-order function