Closures em JavaScript
Entenda como funcionam as closures e por que são fundamentais no JavaScript.
O que são Closures?
Uma closure é uma função que tem acesso ao escopo da função externa mesmo após a função externa ter retornado. É uma das características mais poderosas do JavaScript.
Definição
Uma closure dá acesso ao escopo de uma função externa a partir de uma função interna.
Exemplo Básico
Contador com Closure
Um contador que mantém seu estado através de closure
Cada contador mantém seu próprio estado independente
Dica
Abra o console do navegador para ver os logs dos contadores. Note como cada contador mantém seu próprio estado!
Closure com Parâmetros
Multiplicador com Closure
Função que cria multiplicadores específicos
Resultado x2: 0
Resultado x5: 0
Vantagens das Closures
- Encapsulamento: Variáveis privadas que não podem ser acessadas diretamente
- Factory Functions: Criar funções especializadas
- Callbacks: Manter contexto em funções assíncronas
- Módulos: Padrão de módulo para organizar código
Cuidado com Memory Leaks
Closures mantêm referências às variáveis do escopo externo. Em alguns casos, isso pode causar vazamentos de memória se não for gerenciado adequadamente.