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 notundefined
), 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
Specification |
---|
WeakRefs The definition of 'FinalizationRegistry.prototype.register' in that specification. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
register | Chrome Full support 84 | Edge Full support 84 | Firefox Full support 79 | IE No support No | Opera No support No | Safari No support No | WebView Android Full support 84 | Chrome Android Full support 84 | Firefox Android No support No | Opera Android No support No | Safari iOS No support No | Samsung Internet Android No support No | nodejs
Full support
13.0.0
|
Legend
- Full support
- Full support
- No support
- No support
- User must explicitly enable this feature.
- User must explicitly enable this feature.