function f() {
const w = new WeakMap();
const o = {};
w.set(o, { v: o });
return w;
}
const weakMap = f();
Pour le code donné, le seul article weakMap
est-il considéré comme accessible ou non? Par conséquent, sera-t-il ramassé ou non? PS: Cette question est posée du point de vue de la spécification, et non des implémentations particulières.Une référence "circulaire" serait-elle traitée comme "accessible" pour un WeakMap?
Ce n'est pas censé. Les choses qui n'ont que des références circulaires sont éligibles pour la collecte des ordures, elles ne devraient donc pas rester dans la carte weakMap. – jfriend00
Je disais qu'il devrait être publié car il n'y a pas de références externes et donc il n'est pas accessible ailleurs. – jfriend00
Qu'en est-il de cet exemple circulaire? – loganfsmyth