Closures


Closures em JavaScript referem-se à capacidade de uma função acessar variáveis de seu escopo léxico, mesmo após a conclusão da execução dessa função. Em outras palavras, uma função pode “lembrar” e acessar as variáveis de seu contexto de criação, mesmo quando chamada fora desse contexto.

Exemplo

Considere o seguinte exemplo:

function criarFuncao() {
  const nome = "Luiz";
 
  return function () {
    return nome;
  };
}
 
const funcao = criarFuncao();
console.log(funcao()); // Retorna "Luiz"

Neste exemplo, criarFuncao retorna uma função interna, e essa função interna tem acesso à variável nome de seu escopo léxico, mesmo que criarFuncao já tenha concluído sua execução. A função interna, referenciada por funcao, age como um closure, “capturando” a variável nome.

Referências