> Что происходит с функцией в Map, пока на Map есть ссылка в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: ООО Снэп АйТи
Стек: JavaScript
> Пример ответа
Когда на Map есть активная ссылка, все ключи и значения, добавленные в неё, остаются в памяти и не могут быть собраны сборщиком мусора (GC), даже если на сами объекты-ключи или значения больше нет других ссылок в коде. Это связано с тем, что Map хранит сильные ссылки на свои элементы.
Например:
JAVASCRIPTlet obj = { data: 'важно' };const map = new Map();map.set(obj, 'значение');obj = null; // удаляем внешнюю ссылку на объект// Объект { data: 'важно' } всё ещё жив, потому что на него ссылается mapconsole.log(map.size); // 1
Пока существует переменная map (или другая ссылка на этот экземпляр Map), все его записи защищены от GC. Это может привести к утечкам памяти, если не очищать Map явно (через map.delete() или map.clear()). Для случаев, когда нужно, чтобы ключи могли собираться GC при отсутствии внешних ссылок, существует WeakMap - он хранит только слабые ссылки на ключи.
> Похожие задачи по frontend
Как использовать resolve и reject внутри callback для управления состоянием Promise в JavaScript
В чем отличие контекста в строгом режиме и без него в JavaScript
Какие подводные камни есть при использовании ссылочных типов в JavaScript кроме сравнения
Как реализовать функцию-обертку runOnce в JavaScript, вызывающую функцию только один раз?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью