Кратко
Скопировано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