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 bei diesem FinalizationRegistry
, sodass, wenn der Wert durch die Müllabfuhr gesammelt wird, der Callback des Registriers möglicherweise aufgerufen wird.
Syntax
register(target, heldValue)
register(target, heldValue, unregisterToken)
Parameter
target
-
Der zu registrierende Zielwert.
heldValue
-
Der Wert, der dem Finalizer für dieses
target
übergeben werden soll. Dies kann nicht dastarget
selbst sein, kann jedoch 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 zu deregistrieren. Wenn angegeben (und nichtundefined
), muss es sich um ein Objekt oder ein nicht registriertes Symbol handeln. Wenn nicht angegeben, kann das Ziel nicht deregistriert werden.
Rückgabewert
Keiner (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; Funktionen sind ebenfalls Objekte)target
ist derselbe wieheldValue
(target === heldValue
)unregisterToken
ist kein Objekt oder ein nicht registriertes Symbol
Beschreibung
Sehen Sie sich die Abschnitte Wo möglich vermeiden
und Anmerkungen zu Aufräum-Callbacks
auf der FinalizationRegistry
-Seite für wichtige Hinweise an.
Beispiele
>Verwendung von register
Das folgende Beispiel registriert den Wert, auf den von target
verwiesen wird,
übergibt den gehaltenen Wert "some value"
und übergibt das Ziel selbst
als Deregistrierungs-Token:
registry.register(target, "some value", target);
Das folgende Beispiel registriert den Wert, auf den von target
verwiesen wird,
übergibt ein anderes Objekt als gehaltenen Wert und übergibt kein Deregistrierungs-Token
(was bedeutet, dass target
nicht deregistriert werden kann):
registry.register(target, { useful: "info about target" });
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-finalization-registry.prototype.register> |
Browser-Kompatibilität
Loading…