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