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.
register()
メソッドはオブジェクトを FinalizationRegistry
インスタンスへ登録し、オブジェクトがガベージコレクションで回収された場合、レジストリのコールバックが呼び出されるようになります。
構文
registry.register(target, heldValue, [unregisterToken]);
引数
target
-
登録する対象オブジェクトです。
heldValue
-
このオブジェクトのためにファイナライザーへ渡す値です。これは
target
オブジェクトにすることはできません。 unregisterToken
省略可-
のちに対象オブジェクトを登録解除するために
unregister
メソッドと共に使用するトークンです。提供された場合 (かつundefined
ではない場合)、これはオブジェクトである必要があります。提供されなかった場合は、対象を登録解除することはできません。
返値
undefined
です。
注
重要な注意点については、 FinalizationRegistry
ページの可能な限り避けるとクリーンアップコールバックに関する注意事項の部分を参照してください。
例
register の使用
次の例は target
で参照される対象オブジェクトを保持値 "some value"
で登録し、対象オブジェクト自身を登録解除トークンとして渡します。
registry.register(target, "some value", target);
次の例は target
で参照される対象オブジェクトを他のオブジェクトを保持値として登録し、登録解除トークンを渡していません (すなわち target
は登録解除できません)。
registry.register(target, { useful: "info about target" });
仕様書
Specification |
---|
ECMAScript Language Specification # sec-finalization-registry.prototype.register |
ブラウザーの互換性
BCD tables only load in the browser