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 είναι ενθυλακωμένη και προσβάσιμη μόνο μέσω των μεθόδων του αντικειμένου.