Javascript: l’algorithme de Garbage Collection Mark-and-Sweep

Dans des langages de programmation sans ramasse-miettes, une référence circulaire peut entraîner une fuite de mémoire. Cela signifie que la mémoire allouée pour les objets ne sera pas libérée, car le système ne peut pas déterminer si ces objets sont encore nécessaires ou non.

Heureusement, le ramasse-miettes de JavaScript est assez intelligent pour gérer les références circulaires. Il utilise un algorithme appelé « collecte de cycle » qui détecte les objets qui sont inaccessibles et les supprime, même s’ils se référencent mutuellement. Ainsi, dans le contexte de JavaScript, une référence circulaire comme celle entre obj1 et obj2 ne causera pas de fuite de mémoire.

const obj1 = {};
const obj2 = {};
obj1.reference = obj2; // obj1 fait référence à obj2
obj2.reference = obj1; // obj2 fait référence à obj1