Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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

js
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 la target elle-même mais peut être n'importe quoi d'autre, y compris des fonctions et des valeurs primitives.

unregisterToken Facultatif

Un jeton qui peut être utilisé avec la méthode unregister plus tard pour retirer la valeur cible du registre. Si cette valeur est fournie (et différente de undefined), 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 :

  • target n'est pas un objet ou un symbole non enregistré (objet par opposition aux primitives ; les fonctions sont aussi des objets)
  • target est identique à heldValue (target === heldValue)
  • unregisterToken n'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 :

js
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) :

js
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