Entendendo o Conceito de Closure em JavaScript
Se você já se aprofundou um pouco no mundo do JavaScript, provavelmente já ouviu falar de "closure". Mas o que exatamente isso significa? De forma simples, um closure é a capacidade de uma função interna de acessar e lembrar-se do escopo de sua função externa, mesmo após a função externa ter sido executado.
Imagine a seguinte situação: você tem uma função principal, e dentro dela, você define uma outra função. A função interna, a "filha", não só tem acesso às suas próprias variáveis, mas também tem acesso às variáveis da função "mãe", onde ela foi criada.
O conceito de closure se manifesta quando a função interna é retornada e continua a ter acesso a essas variáveis, mesmo que a função externa já tenha terminado sua execução. É como se a função interna levasse consigo uma "mochila" de variáveis do seu ambiente de criação.
Exemplo Prático:
function criarContador() {
let contador = 0; // Esta é a variável que será "fechada"
return function() {
contador++;
console.log(contador);
};
}
const meuContador = criarContador();
meuContador(); // Saída: 1
meuContador(); // Saída: 2
meuContador(); // Saída: 3
Neste exemplo, a função criarContador retorna uma função anônima. Embora criarContador termine de ser executada, a função anônima que foi retornada ainda "lembra" e tem acesso à variável contador. Isso acontece porque a variável contador foi fechada (closure) no escopo da função interna.
Por que isso é útil?
Comentários
Postar um comentário