WeakMap

JavaScript 🔴 Senior

Dé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).
#core#ES6#avance#performance

← → au clavier pour passer d'une fiche à l'autre