FinalizationRegistry.prototype.register()

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

* Some parts of this feature may have varying levels of support.

Die register() Methode von FinalizationRegistry Instanzen registriert einen Wert mit dieser FinalizationRegistry, sodass, falls der Wert vom Garbage Collector entfernt wird, der Rückruf der Registry möglicherweise aufgerufen wird.

Syntax

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

Parameter

target

Der Zielwert, der registriert werden soll.

heldValue

Der Wert, der an den Finalizer für dieses target übergeben wird. Dies kann nicht das target selbst sein, kann aber alles andere sein, einschließlich Funktionen und primitiver Werte.

unregisterToken Optional

Ein Token, das später mit der unregister-Methode verwendet werden kann, um den Zielwert abzumelden. Falls angegeben (und nicht undefined), muss dies ein Objekt oder ein nicht registriertes Symbol sein. Wird es nicht angegeben, kann das Ziel nicht abgemeldet werden.

Rückgabewert

Kein (undefined).

Ausnahmen

TypeError

Wird in einem der folgenden Fälle ausgelöst:

  • target ist kein Objekt oder ein nicht registriertes Symbol (Objekt im Gegensatz zu primitiven Werten; Funktionen sind ebenfalls Objekte)
  • target ist identisch mit heldValue (target === heldValue)
  • unregisterToken ist kein Objekt oder ein nicht registriertes Symbol

Beschreibung

Siehe die Abschnitte Wenn möglich vermeiden und Hinweise zu Bereinigungsrückrufen auf der FinalizationRegistry Seite für wichtige Hinweise.

Beispiele

Verwendung von register

Das folgende Beispiel registriert den Wert, der von target referenziert wird, und übergibt den gehaltenen Wert "some value" sowie das Ziel selbst als Abmelde-Token:

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

Das folgende Beispiel registriert den Wert, der von target referenziert wird, übergibt ein anderes Objekt als gehaltenen Wert und gibt kein Abmelde-Token an (was bedeutet, dass target nicht abgemeldet werden kann):

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

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-finalization-registry.prototype.register

Browser-Kompatibilität

Siehe auch