0 Tage Serie
javascript / intermediate
Snippet

Kapselung mit privaten Klassenfeldern

Private Klassenfelder (mit dem Präfix #) stellen sicher, dass auf interne Daten nicht von außerhalb der Klasseninstanz zugegriffen oder diese geändert werden können, was eine echte Kapselung in JavaScript ermöglicht.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class SecureVault {
#accessKey;
#balance = 0;
constructor(key, initialDeposit) {
this.#accessKey = key;
this.#balance = initialDeposit;
}
withdraw(key, amount) {
if (this.#accessKey !== key) throw new Error('Unauthorized');
this.#balance -= amount;
return this.#balance;
}
}
Erklärung
1
#accessKey;
Deklariert ein privates Feld, auf das außerhalb des Klassenkörpers nicht zugegriffen werden kann.
2
this.#balance -= amount;
Ändert den privaten Kontostand nur über eine kontrollierte öffentliche Methode.