Кратко
СкопированоWeak
– коллекция из пар ключ-значение, позволяющая собирать свои ключи сборщиком мусора. Ключом Weak
могут быть объекты или символы. Значением WeakMap может быть любой тип данных JavaScript.
Коллекция Weak
не позволяет итерироваться по своим ключам, так как они могут быть удалены сборщиком мусора.
Ключи Weak
хранятся как слабые ссылки, что позволяет сборщику мусора удалять их из памяти, если на них нет других ссылок. Это бывает полезно, если нужно связать какие-то данные с объектом-ключом, но не запрещать сборку мусора для этого объекта.
Пример
Скопированоconst wm = new WeakMap();{ const ref = {}; const value = 'Булочка'; wm.set(ref, value); wm.get(ref); // Булочка}// Здесь сборщик мусора может удалить объект ref, несмотря на то, что он хранится в WeakMap
const wm = new WeakMap(); { const ref = {}; const value = 'Булочка'; wm.set(ref, value); wm.get(ref); // Булочка } // Здесь сборщик мусора может удалить объект ref, несмотря на то, что он хранится в WeakMap