Spec-Zone.ru › JavaScript

FinalizationRegistry.prototype.register()

Baseline Широко доступно

Эта функция хорошо зарекомендовала себя и работает на множестве устройств и версий браузеров. Она доступна во всех браузерах с апреля 2021 года.

Метод register() экземпляров FinalizationRegistry регистрирует значение в этом FinalizationRegistry, чтобы, если значение будет собрано сборщиком мусора, мог быть вызван обратный вызов реестра.

Синтаксис

register(target, heldValue)
register(target, heldValue, unregisterToken)

Параметры

target
Целевое значение для регистрации.
heldValue
Значение, которое будет передано финализатору для этого target. Это не может быть само target, но может быть чем угодно другим, включая функции и примитивы.
unregisterToken Необязательно
Токен, который может быть использован с методом unregister позже для отмены регистрации целевого значения. Если предоставлен (и не undefined), это должен быть объект или незарегистрированный символ. Если не предоставлен, отмена регистрации цели невозможна.

Возвращаемое значение

Нет (undefined).

Исключения

TypeError
Выбрасывается в одном из следующих случаев:
  • target не является объектом или незарегистрированным символом (объект в отличие от примитивов; функции также являются объектами)
  • target совпадает с heldValue (target === heldValue)
  • unregisterToken не является объектом или незарегистрированным символом

Описание

См. разделы Избегайте, когда это возможно и Примечания о обратных вызовах очистки на странице FinalizationRegistry для важных оговорок.

Примеры

Использование register

Следующий пример регистрирует значение, на которое ссылается target, передавая удерживаемое значение "some value" и само целевое значение в качестве токена отмены регистрации:

registry.register(target, "some value", target);

Следующий пример регистрирует значение, на которое ссылается target, передавая другой объект в качестве удерживаемого значения и не передавая токен отмены регистрации (что означает, что target не может быть отменен):

registry.register(target, { useful: "info about target" });

Спецификации

Specification
Спецификация языка ECMAScript® 2027
# sec-finalization-registry.prototype.register

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
register
84
84
79
70
14.1
84
79
60
14.5
14.0
84
14.5
1.0.0
1.0
14.6.0
symbol_as_target
109
109
146
95
16.4
109
146
74
16.4
21.0
109
16.4
1.0.0
1.28
20.0.0

См. также

  • FinalizationRegistry

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry/register

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API