Guia de entrevista · JavaScript

What is a Closure?

do caderno de estudos · atualizado em 18 de julho de 2026
Para quem vai encarar entrevista de JavaScript2 min

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