Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】FinalizationRegistry::FinalizationRegistry.prototype.unregisterインスタンスメソッドの使い方

FinalizationRegistry.prototype.unregister()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

FinalizationRegistry.prototype.unregister()メソッドは、FinalizationRegistryインスタンスに登録されたオブジェクトのファイナライザー(後処理)を解除するメソッドです。FinalizationRegistryは、監視対象のオブジェクトがガベージコレクションによってメモリから解放される際に、特定のクリーンアップ処理を実行する仕組みを提供します。

このunregister()メソッドは、以前にregister()メソッドで登録したファイナライザーがもはや不要になった場合に利用されます。引数としてunregisterTokenを渡します。このunregisterTokenは、register()メソッドでファイナライザーを登録する際にオプションで指定できる識別子で、複数の登録の中からどの登録を解除したいのかを一意に特定するために使われます。

unregister()メソッドが呼び出され、指定されたunregisterTokenに一致する登録が存在すれば、その登録はFinalizationRegistryから削除されます。これにより、そのファイナライザーが関連付けられていたオブジェクトが後でガベージコレクションされても、設定されていたクリーンアップ処理は実行されなくなります。これは、関連するリソースが早期に解放され、後処理が不要になった場合などに、無駄な実行を防ぐために利用される機能です。

構文(syntax)

1const finalizationRegistryInstance = new FinalizationRegistry(() => {});
2const registrationToken = "myUniqueToken";
3
4finalizationRegistryInstance.unregister(registrationToken);

引数(parameters)

unregisterToken

  • unregisterToken: unregister() メソッドの呼び出し時に、FinalizationRegistry.prototype.register() メソッドで登録されたオブジェクトと紐づけられたトークン。このトークンを指定することで、登録されたオブジェクトのファイナライズ処理をキャンセルできます。

戻り値(return)

boolean

指定されたオブジェクトがファイナライザーから正常に解除された場合は true を、解除できなかった場合は false を返します。

関連コンテンツ