Лучше видеть его как код, достижимый или недоступный из корней, а корни - это значения, которые по своей природе всегда достижимы, такие как глобальные переменные.Сборщик мусора в JS использует алгоритм «пометки и очистки», где он начинается с корней и посещает каждую ссылку, их ссылки и так далее.После посещения он помечается как посещаемый / достижимый вместе со всеми доступными ссылками оттуда и больше не будет посещаться.
У вас могут быть ссылки, указывающие на объекты, которые также могут иметь ссылки на другие объекты,но как только они больше не могут быть достигнуты из корня, они образуют своего рода недостижимый островок ссылок.Они никогда не будут посещены и, наконец, будут сметены сборщиком мусора.
Также сделано несколько оптимизаций.Например, некоторые объекты создаются и выполняют свою работу один раз, а затем отмирают.Эти новые убираются очень агрессивно и быстро.Если они используются в течение более длительного периода времени, они будут считаться старыми, и их будут посещать реже, чтобы проверить, следует ли им собирать мусор.