Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
Weak reference — это ссылка на объект, которая не мешает сборщику мусора удалить этот объект, если на него больше нет других "сильных" ссылок. Если объект удален, weak reference становится невалидной. Основное применение — кеширование объектов, связанных с другими объектами, или реализация слабых коллекций (например, WeakMap
, WeakSet
).
В JavaScript weak references реализуются через:
WeakMap
: Коллекция "ключ-значение", где ключи — объекты (на них ссылаются слабо), а значения могут быть любыми. Если ключ удален сборщиком мусора, соответствующая пара "ключ-значение" также удаляется из WeakMap
.WeakSet
: Коллекция объектов, на которые ссылаются слабо. Если объект удален сборщиком мусора, он также удаляется из WeakSet
.WeakRef
: Позволяет создавать слабую ссылку на любой объект. Можно попытаться получить значение слабой ссылки с помощью метода .deref()
. Если объект был удален, .deref()
вернет undefined
.Пример использования WeakMap
:
javascript
Weak reference — это ссылка на объект, которая не мешает сборщику мусора удалить этот объект, если на него больше нет других "сильных" ссылок. Если объект удален, weak reference становится невалидной. Основное применение — кеширование объектов, связанных с другими объектами, или реализация слабых коллекций (например, WeakMap
, WeakSet
).
В JavaScript weak references реализуются через:
WeakMap
: Коллекция "ключ-значение", где ключи — объекты (на них ссылаются слабо), а значения могут быть любыми. Если ключ удален сборщиком мусора, соответствующая пара "ключ-значение" также удаляется из WeakMap
.WeakSet
: Коллекция объектов, на которые ссылаются слабо. Если объект удален сборщиком мусора, он также удаляется из WeakSet
.WeakRef
: Позволяет создавать слабую ссылку на любой объект. Можно попытаться получить значение слабой ссылки с помощью метода .deref()
. Если объект был удален, .deref()
вернет undefined
.Пример использования WeakMap
:
javascript
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.