Перейти к основному содержимому
Об авторе
Проекты
Знания
Знания/JavaScript/weakref-finalization

Что такое `WeakRef` и `FinalizationRegistry`?

УглублённыйУправление памятью
  • WeakRef — слабая ссылка на объект, не препятствующая сборке мусора:
    • const ref = new WeakRef(obj) — создание
    • ref.deref() — получить объект или undefined, если он собран
  • FinalizationRegistry — позволяет зарегистрировать callback, который вызовется после сборки объекта:
    • const registry = new FinalizationRegistry(callback)
    • registry.register(obj, heldValue) — регистрация
  • Оба механизма недетерминированы — нельзя полагаться на время вызова
  • Используются для кэшей, пулов ресурсов, cleanup внешних ресурсов
  • Главная
  • Об авторе
  • Проекты
  • Знания
Логотип nKolmykov