ExpertiDict

JavaScript · Intermediário · Português · Técnico

função de ordem superior

/fũˈsɐ̃w̃ dʒi ˈoʁdẽj supeˈɾjoʁ/substantivo

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

Veja também

Todos os termos de JavaScript