Sobes.tech
Middle

Como funciona um closure em JavaScript? Explique com um exemplo da variável index e da função run na sua solução.

sobes.tech IA

Resposta da IA

No JavaScript, um closure é uma função que se lembra do seu ambiente léxico, mesmo que seja chamada fora do seu escopo.

Vamos ver um exemplo com a variável index e a função run:

function createRunner() {
  let index = 0;
  function run() {
    console.log(index);
    index++;
  }
  return run;
}

const runner = createRunner();
runner(); // 0
runner(); // 1
runner(); // 2

Aqui, a função run faz um closure da variável index da função externa createRunner. Mesmo após createRunner ter terminado sua execução, run continua tendo acesso a index e pode modificá-lo. Isso permite manter o estado entre as chamadas da função run.

Dessa forma, closures permitem criar funções com variáveis privadas e manter o estado sem usar variáveis globais.