Funções imediatas (IIFE)
IIFE é um acrônimo para Immediately Invoked Function Expression, que traduzindo para o português significa Função Imediata ou Função Auto-Invocável. Trata-se de uma função que é declarada e executada imediatamente após a sua criação.
Nota
O uso mais comum das IIFE é evitar a poluição do escopo global, já que as variáveis e funções definidas dentro delas não são acessíveis fora do seu contexto.
Exemplos
Exemplo básico
(function () {
const nome = "Luiz";
console.log(nome); // Luiz
})();
const nome = "Otávio";
console.log(nome); // Otávio
No exemplo acima, a IIFE encapsula a variável nome
, evitando a contaminação do escopo global e permitindo que a variável nome
fora da IIFE tenha um valor diferente.
Sintaxe herdada da biblioteca jQuery
(function (idade, peso, altura) {
const sobrenome = "Miranda";
function criarNome(nome) {
return nome + " " + sobrenome;
}
function falarNome() {
console.log(criarNome("Luiz"));
}
falarNome();
console.log(idade, peso, altura);
})(30, 80, 1.8);
/*
Luiz Miranda
30 80 1.8
Neste exemplo, a IIFE recebe parâmetros (idade, peso, altura)
e contém funções e variáveis internas que são utilizadas imediatamente. Isso evita a exposição desnecessária de variáveis no escopo global.