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
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 dastarget
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 nichtundefined
), 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 mitheldValue
(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:
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):
registry.register(target, { useful: "info about target" });
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-finalization-registry.prototype.register |