Atualizado: 07/12/2024

Funções IIFE (Funções Auto Executáveis) - JavaScript

Normalmente, a definição de uma função é separada da sua chamada: primeiro definimos a função, depois a chamamos. No entanto, isso não é obrigatório. Também podemos criar funções que são chamadas imediatamente após serem definidas. Essas funções são conhecidas como Immediately Invoked Function Expressions (IIFE). Elas são envolvidas por parênteses, e logo após a definição, há uma chamada com ou sem parâmetros:

// função IIFE 
(function() {
    console.log("Olá, mundo!");
}());

Aqui, podemos dividir este programa em algumas partes. Primeiro, a definição de uma função anônima:

function() {
    console.log("Olá, mundo!");
}

Esta é uma função comum que imprime uma string. Em seguida, há uma chamada de função com parênteses vazios:

function() {
    console.log("Olá, mundo!");
}()

Esses parênteses representam a chamada da função, onde normalmente seriam passados parâmetros. Como nossa função anônima não tem parâmetros, os parênteses estão vazios. Assim, a função é chamada imediatamente após sua definição, e toda a construção é envolvida por parênteses.

Podemos criar e chamar uma função que aceita parâmetros da mesma maneira:

(function(a, b) {
    const resultado = a + b;
    console.log(`${a} + ${b} = ${resultado}`);
}(4, 5));

Aqui, a função aceita dois parâmetros, cujos valores são somados e o resultado é impresso no console. E após a definição da função, passamos imediatamente dois números - 4 e 5. Dessa forma, a função é definida e executada imediatamente, somando os números 4 e 5.

Estilo Funcional

Closures e funções IIFE simplificam a escrita de programas no estilo funcional. Vejamos o exemplo a seguir:

const sum = (function() {
    const a = 4;
    const b = 5;
    return a + b;
}());

console.log(sum); // 9

Aqui, temos uma função IIFE que retorna a soma de dois números. A função é chamada e o resultado é armazenado na variável sum. Em seguida, o valor de sum é impresso no console. Isso é um exemplo de programação funcional, onde funções são tratadas como valores e podem ser passadas como argumentos ou retornadas de outras funções.

Funções IIFE são úteis para criar escopos isolados, onde variáveis locais são definidas e não poluem o escopo global. Além disso, elas são úteis para criar funções que são chamadas apenas uma vez, como inicializadores de variáveis ou configurações de bibliotecas.

No entanto, é importante notar que funções IIFE não são necessárias em JavaScript moderno. Com a introdução de let e const, podemos criar escopos isolados sem a necessidade de funções IIFE. Além disso, funções IIFE podem tornar o código menos legível, especialmente para desenvolvedores iniciantes. Portanto, é recomendável usá-las com moderação.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com