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
.