FinalizationRegistry : méthode register()
Baseline
Widely available
*
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis avril 2021.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
La méthode register() des instances de FinalizationRegistry inscrit une valeur dans cet objet FinalizationRegistry afin que, si la valeur est récupérée par le ramasse-miettes, la fonction de rappel du registre puisse être appelée.
Syntaxe
register(target, heldValue)
register(target, heldValue, unregisterToken)
Paramètres
target-
La valeur cible à inscrire au registre.
heldValue-
La valeur à passer au finaliseur pour cette
target. Cette valeur ne peut pas être latargetelle-même mais peut être n'importe quoi d'autre, y compris des fonctions et des valeurs primitives. unregisterTokenFacultatif-
Un jeton qui peut être utilisé avec la méthode
unregisterplus tard pour retirer la valeur cible du registre. Si cette valeur est fournie (et différente deundefined), elle doit être un objet ou un symbole non enregistré. Si cette valeur n'est pas fournie, la cible ne peut pas être retirée du registre.
Valeur de retour
Aucune (undefined).
Exceptions
TypeError-
Levée dans l'un des cas suivants :
targetn'est pas un objet ou un symbole non enregistré (objet par opposition aux primitives ; les fonctions sont aussi des objets)targetest identique àheldValue(target === heldValue)unregisterTokenn'est pas un objet ou un symbole non enregistré
Description
Voir les sections À éviter si possible et Notes sur les fonctions de rappel de nettoyage de la page FinalizationRegistry pour des points importants à prendre en compte.
Exemples
>Utiliser la méthode register()
La ligne suivante enregistre l'objet cible et passe la valeur tenue "une valeur" et l'objet cible comme jeton de désenregistrement :
registry.register(cible, "une valeur", cible);
La ligne suivante enregistre l'objet cible et passe un autre objet comme valeur tenue. L'absence de jeton de désenregistrement (indique que cible ne peut pas être retiré du registre) :
registry.register(cible, { utile: "info à propos de la cible" });
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-finalization-registry.prototype.register> |
Compatibilité des navigateurs
Voir aussi
- L'objet
FinalizationRegistry