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
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.