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
тоже.