“A view of the airplane aisle with a flight attendant carrying a tray” by Suhyeon Choi on Unsplash

JavaScript: Funções de primeira classe

O que significa o termo “funções de primeira classe”? JavaScript é uma linguagem com suporte a funções de primeira classe? E o que essa característica significa em aplicações reais?

O que significa uma linguagem ter suporte a “funções de primeira classe”?

Uma linguagem de programação é dita ter suporte a “funções de primeira classe” se essa linguagem trata as funções como “cidadãs de primeira classe”.

Funções como cidadãs de primeira classe

Vamos ver agora alguns exemplos práticos do uso de funções como cidadãs de primeira classe em JavaScript.

function sayHello() {
console.log("Hello");
}
// Armazena a função 'sayHello' em 'funcRef'
const funcRef = sayHello;
// Executa 'funcRef'
funcRef();
function execute(fn) {
// Executa a função recebida no parâmetro 'fn'
fn();
}
function sayHello() {
console.log("Hello world!");
}
// A função 'sayHello' é passada como parâmetro
execute(sayHello);
function chooseHello(isNight) {
if (isNight) {
return silentHello; // Retorna a função 'silentHello'
} else {
return noisyHello; // Retorna a função 'noisyHello'
}
}
function silentHello() {
console.log("hello world");
}
function noisyHello() {
console.log("HELLOOOO WORLD!!!");
}
// sayHello recebe a função retornada por 'chooseHello'
const sayHello = chooseHello(false); // #Linha 18
sayHello(); // HELLOOOO WORLD!!! // #Linha 20

Resumindo

Funções como cidadãs de primeira classe é um recurso incrível de linguagens funcionais.

Até o próximo!

Muito obrigado por ler esse texto até o final. Espero que você tenha gostado e que ele possa ter te ajudado de alguma forma.

Referências

Software engineer.