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 2021年4月.
* Some parts of this feature may have varying levels of support.
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® 2026 Language Specification> # sec-finalization-registry.prototype.register> |
ブラウザーの互換性
Loading…