Junior — Middle
Como é que se podem usar closures para alcançar o encapsulamento de dados em JavaScript?
sobes.tech IA
Resposta da IA
No JavaScript, os closures permitem criar variáveis privadas, às quais o acesso só é possível através de funções específicas, garantindo a encapsulação de dados.
Exemplo:
function createCounter() {
let count = 0; // variável privada
return {
increment() {
count++;
return count;
},
getCount() {
return count;
}
};
}
const counter = createCounter();
console.log(counter.increment()); // 1
console.log(counter.getCount()); // 1
console.log(counter.count); // undefined — acesso direto não é possível
Aqui, count não é acessível diretamente do código externo, mas acessível através dos métodos increment e getCount. Isto permite controlar o acesso e a modificação dos dados, implementando a encapsulação através de closures.