0 Tage Serie
javascript / intermediate
Snippet

Kapselung mit privaten Klassenfeldern

Die Verwendung des Präfixes '#' vor einem Eigenschaftsnamen macht diese innerhalb der Klasse wahrhaft privat. Es kann von außerhalb der Klasseninstanz nicht darauf zugegriffen oder sie geändert werden, was eine strikte Kapselung gewährleistet.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class SecureVault {
#secretCode;
constructor(code) {
this.#secretCode = code;
}
verify(input) {
return this.#secretCode === input;
}
}
const vault = new SecureVault('1234');
console.log(vault.verify('1234')); // true
// console.log(vault.#secretCode); // SyntaxError
nodejs
Erklärung
1
#secretCode;
Deklariert ein privates Feld, auf das außerhalb des Klassenbereichs nicht zugegriffen werden kann.
2
this.#secretCode = code;
Weist dem privaten Feld innerhalb des Konstruktors einen Wert zu.