Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

WeakMap

Map, ключами которого могут быть только объекты, и они не мешают сборке мусора.

Доступно с: ES2015

Синтаксис

new WeakMap(entries)

Параметры

ПараметрТипОписание
entriesIterableНеобязательный. Пары [объект, значение] для начального заполнения.

Возвращаемое значение

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 — Коллекция пар ключ — значение, где ключом может быть что угодно.
  • WeakSet — Множество объектов, которое не мешает их сборке мусора.

В учебнике

  • Map и Set — Коллекции Map и Set в JavaScript: словарь с ключами любого типа и набор уникальных значений.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.