Sobes.tech
Junior

Para que serve usar um closure em JavaScript?

sobes.tech IA

Resposta da IA

O encerramento (closure) em JavaScript é uma função que «lembra» do ambiente em que foi criada, incluindo o acesso às variáveis do escopo externo, mesmo que essa função externa já tenha terminado a execução.

Para que serve:

  • Manter o estado entre chamadas de funções.
  • Encapsulamento de dados, criação de variáveis privadas.
  • Implementação de funções com parâmetros padrão ou aplicação parcial.
  • Nos hooks do React, os closures ajudam a manter o acesso ao estado e às props dentro das funções.

Exemplo:

function makeCounter() {
  let count = 0;
  return function() {
    count += 1;
    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, mesmo após makeCounter ter terminado.