Sobes.tech
Junior — Middle

Как могат да се използват затварянията за постигане на инкапсулация на данни в JavaScript?

sobes.tech AI

Отговор от AI

В JavaScript, затварянията позволяват създаването на частни променливи, до които може да се достъпва само чрез определени функции, което осигурява капсулация на данните.

Пример:

function createCounter() {
  let count = 0; // частна променлива

  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);       // не е дефинирано — директен достъп не е възможен

Тук count не е достъпно директно от външния код, но е достъпно чрез методите increment и getCount. Това позволява контрол върху достъпа и промяната на данните, реализирайки капсулация чрез затваряния.