let obj1 = { name: 'Sarah' };
let obj2 = { name: 'Mike' };
let obj3 = { ref: obj1 };
obj1.circular = obj1;
obj2.partner = obj3;
obj3.partner = obj2;
let weakMap = new WeakMap();
weakMap.set(obj1, 'data1');
weakMap.set(obj2, 'data2');
obj1 = null;
obj2 = null;
console.log(weakMap.has(obj3.ref));
console.log(obj3.partner.name);
Ответ: true Mike
JavaScript test | #JavaScript & Max