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.

Referências