Closure
JavaScript · também conhecido como fechamento
Função que retém acesso a variáveis do escopo externo onde foi criada.
seção
Explicação
Closure — Função que retém acesso a variáveis do escopo externo onde foi criada.
Função + referência ao ambiente léxico onde foi criada. Variáveis outer permanecem vivas enquanto inner for invocável.
Poderoso para partial application e encapsulamento; cuidado com loops e referências grandes (memory leak).
seção
Exemplo
function contador() { let n = 0; return () => ++n;}const next = contador();next(); // 1next(); // 2seção
Modo de uso
Event handlers com estado
Debounce/throttle factories
Currying manual
seção
Armadilhas comuns
Capturar variável mutável de loop var
Retenção inadvertida de DOM nodes
seção
Termos relacionados
Aprofundar no artigo
Quer ir além? Este artigo explora o tema em profundidade — leitura recomendada após o glossário.
Scope and Closures: Onde as Variáveis Vivem e Como as Funções Lembram
Entenda os tipos de escopo, o escopo léxico, closures e como var, let e const afetam visibilidade, segurança e previsibilidade no JavaScript.
ler artigoMais em JavaScript
Outros termos da mesma categoria para revisão em sequência.
Hoisting
JSComportamento de mover declarações para o topo do escopo antes da execução.
ver definiçãoTemporal Dead Zone (TDZ)
JSPeríodo entre entrar no escopo e a declaração let/const onde o binding não pode ser acessado.
ver definiçãoStrict Mode
JSModo restrito ativado por use strict que captura erros silenciosos e proíbe sintaxe insegura.
ver definição