WeakMap

JavaScript 🔴 Senior

Definition

Map dont les cles sont obligatoirement des objets et sont tenues faiblement : si plus aucune reference forte n'existe vers la cle, l'entree est garbage-collectee. Non iterable.

Analogie

Des post-it colles sur des objets : quand l'objet part a la poubelle, le post-it disparait avec.

Exemple de code

const metadata = new WeakMap();
let user = { name: 'Alice' };
metadata.set(user, { visits: 0 });
// user = null -> l'entree est GC-ee

Cas d'usage

Stocker des metadonnees privees sur des objets sans empecher leur garbage collection.

Anti-pattern

Essayer d'iterer une WeakMap ou compter ses elements (impossible by design).
#core#ES6#avance#performance