W3cubDocs

/JavaScript

finalizationRegistry.register

The register() method registers an object with a FinalizationRegistry instance so that if the object is garbage-collected, the registry's callback may get called.

Syntax

registry.register(target, heldValue, [unregisterToken]);

Parameters

target
The target object to register.
heldValue
The value to pass to the finalizer for this object. This cannot be the target object.
unregisterToken Optional
A token that may be used with the unregister method later to unregister the target object. If provided (and not undefined), this must be an object. If not provided, the target cannot be unregistered.

Return value

undefined.

Notes

See the Avoid where possible and Notes on cleanup callbacks sections of the FinalizationRegistry page for important caveats.

Examples

Using register

The following registers the target object referenced by target, passing in the held value "some value" and passing the target object itself as the unregistration token:

registry.register(target, "some value", target);

The following registers the target object referenced by target, passing in another object as the held value, and not passing in any unregistration token (which means target can't be unregistered):

registry.register(target, {"useful": "info about target"});

Specifications

Browser compatibilityUpdate compatibility data on GitHub

Desktop
Chrome Edge Firefox Internet Explorer Opera Safari
register 84 84 79 No No No
Mobile
Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
register 84 84 79 No No No
Server
Node.js
register 13.0.0
Disabled
13.0.0
Disabled
Disabled From version 13.0.0: this feature is behind the --harmony-weak-refs runtime flag.

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://wiki.developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry/register