javascript / intermediate
Snippet
Kapselung privater Daten mit WeakMap
WeakMap ermöglicht es, private Daten mit einem Objekt zu verknüpfen, ohne sie über Eigenschaftsschlüssel preiszugeben. Es verhindert zudem Speicherlecks, da Einträge gelöscht werden, wenn das Objekt zerstört wird.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
const internalState = new WeakMap();class SecureVault {constructor(secret) {internalState.set(this, { secret });}getSecret() {return internalState.get(this).secret;}}
nodejs
Erklärung
1
new WeakMap()
Initialisiert eine Sammlung, bei der Schlüssel Objekte sein müssen und schwach referenziert werden.
2
internalState.set(this, ...)
Verknüpft die aktuelle Instanz mit einem privaten Datenobjekt.