WeakRef
JavaScript 🔴 SeniorDefinition
Reference faible vers un objet qui n'empeche pas sa garbage collection. Acces via .deref() qui retourne l'objet ou undefined s'il a ete GC.
Analogie
Prendre une photo d'un objet au lieu de le garder : tu peux regarder la photo, mais l'objet peut avoir ete jete 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 legers, references optionnelles a des objets DOM.
Anti-pattern
Utiliser WeakRef pour la logique metier critique : le timing du GC est non-deterministe.