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

【JavaScript ECMAScript】Proxy::handler.getPrototypeOfインスタンスメソッドの使い方

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

作成日: 更新日:

基本的な使い方

handler.getPrototypeOf()メソッドは、Proxyオブジェクトのプロトタイプチェーンに関する操作を捕捉・カスタマイズするために実行されるメソッドです。JavaScriptのProxyオブジェクトは、あるオブジェクト(ターゲット)への操作を横取り(インターセプト)し、その振る舞いを変更することを可能にします。

このgetPrototypeOfメソッドは、Object.getPrototypeOf()関数やinstanceof演算子、Object.prototype.isPrototypeOf()メソッドなど、オブジェクトのプロトタイプ(継承元)を取得しようとする操作がProxyオブジェクトに対して行われた際に呼び出されます。具体的には、ターゲットオブジェクトのプロトタイプが何であるかを決定し、その情報を返す役割を担います。

このメソッドを使用することで、ターゲットの実際のプロトタイプを隠蔽したり、異なるプロトタイプを返したりするなど、プロトタイプチェーンの振る舞いを柔軟に制御できます。もしハンドラオブジェクトにこのgetPrototypeOfメソッドが定義されていない場合、デフォルトではターゲットオブジェクト自身のプロトタイプがそのまま返されます。セキュリティの強化やオブジェクトの抽象化、デバッグ目的などで、オブジェクトのプロトタイプ情報をプログラムから制御したい場合に非常に有用です。

公式リファレンス: handler.getPrototypeOf()

構文(syntax)

1new Proxy(targetObject, {
2  getPrototypeOf(target) {
3    return Reflect.getPrototypeOf(target);
4  }
5});

引数(parameters)

target

  • target: Proxyオブジェクトがラップしている元のオブジェクト

戻り値(return)

Object | null

handler.getPrototypeOf() は、プロキシされたオブジェクトのプロトタイプを返します。プロトタイプが存在しない場合は null を返します。

関連コンテンツ