JavaScript 📜
July 22

WeakMap

WeakMap — это структура, которая не удерживает объект от удаления GC.

  • Ключи — только объекты.
  • Если на ключ больше нет других ссылок кроме WeakMap — объект считается мусором и будет удалён.
  • WeakMap не итерируемый, ты не можешь получить .keys() или .size() — потому что эти объекты могут в любой момент "исчезнуть".

const privateData = new WeakMap();

class User {
  constructor(name) {
    privateData.set(this, { name });
  }

  get name() {
    return privateData.get(this).name;
  }
}

📌 Когда экземпляр User больше нигде не используется — он удаляется, и все его "приватные данные" в WeakMap тоже.