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.
WeakSetfonctionne 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).