$cat~/glossario/closure.md

Closure

JavaScript · também conhecido como fechamento

Função que retém acesso a variáveis do escopo externo onde foi criada.

closure.mdmarkdown
01

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).

02

seção

Exemplo

snippetJavaScript
function contador() {  let n = 0;  return () => ++n;}const next = contador();next(); // 1next(); // 2
03

seção

Modo de uso

  • Event handlers com estado

  • Debounce/throttle factories

  • Currying manual

04

seção

Armadilhas comuns

  • Capturar variável mutável de loop var

  • Retenção inadvertida de DOM nodes

05

seção

Termos relacionados