> Что происходит с функцией в Map, пока на Map есть ссылка в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: ООО Снэп АйТи

Стек: JavaScript

> Пример ответа

Когда на Map есть активная ссылка, все ключи и значения, добавленные в неё, остаются в памяти и не могут быть собраны сборщиком мусора (GC), даже если на сами объекты-ключи или значения больше нет других ссылок в коде. Это связано с тем, что Map хранит сильные ссылки на свои элементы.

Например:

JAVASCRIPT
let obj = { data: 'важно' };
const map = new Map();
map.set(obj, 'значение');
obj = null; // удаляем внешнюю ссылку на объект
// Объект { data: 'важно' } всё ещё жив, потому что на него ссылается map
console.log(map.size); // 1

Пока существует переменная map (или другая ссылка на этот экземпляр Map), все его записи защищены от GC. Это может привести к утечкам памяти, если не очищать Map явно (через map.delete() или map.clear()). Для случаев, когда нужно, чтобы ключи могли собираться GC при отсутствии внешних ссылок, существует WeakMap - он хранит только слабые ссылки на ключи.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью