Sobes.tech
Middle

O que é um closure? Pode explicar?

sobes.tech IA

Resposta da IA

Fecho — é uma função juntamente com o ambiente léxico em que foi criada. Isto significa que a função 'lembra-se' das variáveis do escopo externo, mesmo que essa função externa já tenha terminado a sua execução.

Exemplo em JavaScript:

function makeCounter() {
  let count = 0;
  return function() {
    count++;
    return count;
  };
}

const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2

Aqui, a função interna mantém o acesso à variável count da função externa makeCounter, criando um encerramento. Isto permite manter o estado entre chamadas da função.