WeakMap

new WeakMap()

Semblable à Map, mais seuls des objets peuvent servir de clés et la WeakMap ne les retient pas en mémoire – quand l’objet disparaît ailleurs, son entrée disparaît aussi. Elle convient aux données liées aux éléments de la page ou à d’autres objets.

Valeur de retour

Un nouvel objet WeakMap avec les méthodes set(), get(), has() et delete().

Exemples

const clicks = new WeakMap();
const button = { id: 'submit' };
clicks.set(button, (clicks.get(button) ?? 0) + 1);
clicks.set(button, (clicks.get(button) ?? 0) + 1);
console.log(clicks.get(button), clicks.has({ id: 'submit' }));
try {
  clicks.set('Texte', 1);
} catch (e) {
  console.log(e.name);
}

Résultat :

2 false
TypeError

Points d’attention

  • Une chaîne ou un nombre ne peut pas être une clé (TypeError).
  • Une WeakMap ne peut être ni parcourue, ni mesurée – son contenu dépend du moment où le navigateur libère la mémoire.
  • WeakSet fonctionne de la même façon pour un ensemble d’objets.

Prise en charge par les navigateurs

Baseline – largement disponible : fonctionne dans tous les navigateurs courants, et depuis longtemps (au plus tard depuis 2015). Depuis la version : Chrome 36, Firefox 6, Safari 8 ; Node.js 0.12.0. État : octobre 2026 (MDN browser-compat-data).

Voir aussi :
Map
Set