Junior — Middle
Pode explicar o que é um closure em JavaScript e como funciona?
sobes.tech IA
Resposta da IA
O encerramento em JavaScript é uma função que «lembra» o ambiente em que foi criada, mesmo que esse ambiente já não esteja ativo. Em termos simples, uma função dentro de outra pode aceder às variáveis da função externa após esta ter terminado a sua execução.
Isto funciona porque, ao criar uma função, é guardada uma referência ao ambiente léxico onde ela foi declarada.
Exemplo:
function exterior() {
let contador = 0;
return function interior() {
contador++;
console.log(contador);
};
}
const contador = exterior();
contador(); // 1
contador(); // 2
Aqui, interior fecha a variável contador de exterior, mantendo o seu estado entre chamadas.