WeakMap
JavaScript 🔴 SeniorDefinition
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).