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.
Die register()
-Methode von FinalizationRegistry
-Instanzen registriert einen Wert bei diesem FinalizationRegistry
, sodass, wenn der Wert vom Garbage Collector gesammelt wird, der Rückruf des Registrierers 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 werden soll. Dies kann nicht dastarget
selbst sein, kann aber alles andere sein, einschließlich Funktionen und Primitiven. unregisterToken
Optional-
Ein Token, das später mit der
unregister
-Methode verwendet werden kann, um den Zielwert abzumelden. Wenn angegeben (und nichtundefined
), muss dies ein Objekt oder ein nicht registriertes Symbol sein. Wenn nicht angegeben, kann das Ziel nicht abgemeldet 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 (Objekte im Gegensatz zu Primitiven; Funktionen sind ebenfalls Objekte)target
ist das gleiche wieheldValue
(target === heldValue
)unregisterToken
ist kein Objekt oder ein nicht registriertes Symbol
Beschreibung
Siehe die Abschnitte Nach Möglichkeit vermeiden
und Hinweise zu Bereinigung-Rückrufen
auf der FinalizationRegistry
-Seite für wichtige Hinweise.
Beispiele
Verwendung von register
Das Folgende registriert den Wert, auf den target
verweist,
und übergibt den gehaltenen Wert "some value"
sowie das Ziel selbst
als Abmeldungstoken:
registry.register(target, "some value", target);
Das Folgende registriert den Wert, auf den target
verweist,
übergibt ein anderes Objekt als gehaltenen Wert und übergibt kein Abmeldungstoken
(was bedeutet, dass target
nicht abgemeldet werden kann):
registry.register(target, { useful: "info about target" });
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-finalization-registry.prototype.register |
Browser-Kompatibilität
BCD tables only load in the browser