JavaScriptFunçõesintermediario

IIFE

Em código real, você frequentemente precisa isolar variáveis para evitar conflitos com outros scripts — é aí que entra a IIFE. Bibliotecas como jQuery usavam esse padrão para criar escopo privado e expor apenas uma interface controlada. Dominar IIFE é essencial para entender modularização antes dos módulos do ES6 e para proteger dados internos de um módulo.

O PROBLEMA

Crie um módulo usando IIFE que encapsula variáveis privadas e expõe métodos públicos.

EXEMPLO

const modulo = (function() {
  let privado = 0;
  return { incrementar: () => ++privado, valor: () => privado };
})();

SOBRE O CONCEITO

IIFE (Immediately Invoked Function Expression) é uma função que é executada no momento da definição. Ela cria um escopo fechado, onde variáveis como privado ficam inacessíveis de fora — isso é encapsulamento. O erro comum é esquecer os () finais, o que faz a expressão retornar a função em vez de seu resultado. Sem a invocação, modulo recebe a função, não o objeto com os métodos. Para expor uma interface pública, você precisa retornar um objeto com os métodos desejados, como incrementar e valor, que acessam a variável privada por meio de closures.

RESOLUÇÃO

Mais exercícios de Funções

JSF019 · IntermediárioComposição de funçõesJSF022 · AvançadoGenerator functionJSF023 · AvançadoFunção pura vs impuraJSF024 · AvançadoTrampolim para recursão
Ver todos os exercícios de JavaScript