Essa é daquelas que parecem simples até o entrevistador emendar um "why?". Abaixo, a estrutura de resposta que passa em entrevista.
A resposta, como você fala na entrevista
A closure is a function that REMEMBERS the variables from the scope where it was CREATED, even when it runs somewhere else later.
function counter() {
let count = 0;
return () => ++count; // this inner function "closes over" count
}
const inc = counter();
inc(); // 1
inc(); // 2 — count survived because the closure kept it alive
Classic trap:
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 0); // prints 3, 3, 3
}
All three callbacks point at the SAME var i in memory. Using let fixes it, because each iteration creates its own i.
pegadinha clássica · anotada no caderno
Ler é fácil. Falar isso em inglês, sob pressão, com alguém avaliando, é outra história. No VagaGringa esse tópico vira flashcard com repetição espaçada, cai em quiz e entra no simulado.
Treinar este tópico no app