WeakMap
Map, ключами которого могут быть только объекты, и они не мешают сборке мусора.
Доступно с: ES2015
Синтаксис
new WeakMap(entries)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| entries | Iterable | Необязательный. Пары [объект, значение] для начального заполнения. |
Возвращаемое значение
WeakMapНовая коллекция со «слабыми» ключами.
Примеры
Дополнительные данные к объекту без изменения самого объекта:
const clicks = new WeakMap();
const button = { id: 'save' };
clicks.set(button, 1);
clicks.set(button, clicks.get(button) + 1);
console.log(clicks.get(button));
console.log(clicks.has({ id: 'save' }));Результат:
2
falseПримечания
Когда на объект-ключ больше нет ссылок, запись исчезает сама — это защищает от утечек памяти. Плата за это: у WeakMap нет size, его нельзя перебрать, а ключами не могут быть строки и числа.
См. также
В учебнике
- Map и Set — Коллекции Map и Set в JavaScript: словарь с ключами любого типа и набор уникальных значений.