Sobes.tech
Junior — Middle

Podes dar um exemplo de quando, em JavaScript, um closure é usado para armazenar dados ou criar métodos privados?

sobes.tech IA

Resposta da IA

No JavaScript, os closures são frequentemente usados para criar dados e métodos privados que não estão acessíveis de fora.

Exemplo:

function Counter() {
  let count = 0; // variável privada

  return {
    increment() {
      count++;
      return count;
    },
    getCount() {
      return count;
    }
  };
}

const counter = Counter();
console.log(counter.increment()); // 1
console.log(counter.getCount());  // 1
console.log(counter.count);       // undefined — acesso ao count de fora não é possível

Aqui, count é armazenado no closure da função Counter e não está acessível diretamente, o que garante a encapsulação dos dados.