Sobes.tech
Middle+

Υλοποιήστε μια λειτουργία μετρητή με κλείσιμο, όπου ο μετρητής δεν μπορεί να αλλάξει από έξω.

sobes.tech AI

Απάντηση από AI

Ακολουθεί ένα παράδειγμα μιας λειτουργίας μετρητή σε JavaScript χρησιμοποιώντας κλείσιμο, όπου η εσωτερική τιμή του μετρητή δεν είναι προσβάσιμη από έξω και μπορεί να αλλάξει μόνο μέσω μεθόδων:

function createCounter() {
  let count = 0; // ιδιωτική μεταβλητή

  return {
    increment() {
      count++;
      return count;
    },
    decrement() {
      count--;
      return count;
    },
    getValue() {
      return count;
    }
  };
}

const counter = createCounter();
console.log(counter.increment()); // 1
console.log(counter.increment()); // 2
console.log(counter.getValue());  // 2
// Δεν είναι δυνατή η άμεση αλλαγή του count, π.χ., counter.count = 100 δεν επηρεάζει την εσωτερική τιμή

Έτσι, η μεταβλητή count είναι ενθυλακωμένη και προσβάσιμη μόνο μέσω των μεθόδων του αντικειμένου.