WeakRef
JavaScript 🔴 SeniorDéfinition
Référence faible vers un objet qui n'empêche pas sa garbage collection. Accès via .deref() qui retourne l'objet ou undefined s'il a été GC.
Analogie
Prendre une photo d'un objet au lieu de le garder : tu peux regarder la photo, mais l'objet peut avoir été jeté entre-temps.
Exemple de code
let obj = { data: 'important' };
const ref = new WeakRef(obj);
obj = null; // eligible au GC
// Plus tard
const derefed = ref.deref();
if (derefed) console.log(derefed.data);
else console.log('GC collected');
Cas d'usage
Caches non-bloquants, observateurs légers, références optionnelles a des objets DOM.
Anti-pattern
Utiliser WeakRef pour la logique métier critique : le timing du GC est non-déterministe.