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