Циркулярные ссылки в сборщике Javascript / мусора


Answers

Question

Может кто-нибудь объяснить подробно, как двигатели Javascript имеют дело с циркулярными ссылками? Есть ли большая разница между браузерами или даже node.js?

Я говорю о явной обратной / следующей ссылке в объектах. Например:

var objA = {
    prop: "foo",
    next: null
};

var objB = {
    prop: "foo",
    prev: null
};

objA.next = objB;
objB.prev = objA;

Мы идем. Если мы сделаем console.log( objA ) мы увидим, что мы создали бесконечную цепочку. Большой вопрос: это плохо? Это создает утечку памяти при неявной очистке?

Так что мы должны

objA.next = null;
objB.prev = null;

или сборщики мусора позаботятся о нас в таких созвездиях?




Links