WeakMap
JavaScript 🔴 SeniorDéfinition
Map dont les clés sont obligatoirement des objets et sont tenues faiblement : si plus aucune référence forte n'existe vers la clé, l'entrée est garbage-collectée. Non iterable.
Analogie
Des post-it colles sur des objets : quand l'objet part a la poubelle, le post-it disparaît 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 privées sur des objets sans empêcher leur garbage collection.
Anti-pattern
Essayer d'iterer une WeakMap ou compter ses éléments (impossible by design).