【JavaScript ECMAScript】Object::Object.getPrototypeOf静的メソッドの使い方
Object.getPrototypeOf()静的メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Object.getPrototypeOf()メソッドは、指定されたオブジェクトのプロトタイプ(内部プロパティ[[Prototype]]の値)を返すメソッドです。
JavaScriptでは、オブジェクトは「プロトタイプ」と呼ばれる別のオブジェクトからプロパティやメソッドを継承する仕組みを持っています。この継承元となるプロトタイプは、オブジェクトの「原型」のようなものです。Object.getPrototypeOf()メソッドは、この「原型」が何であるかを確認するために使用されます。
このメソッドには引数として、プロトタイプを調べたいオブジェクトを一つ渡します。戻り値としては、そのオブジェクトのプロトタイプとなるオブジェクト、またはプロトタイプが存在しない場合はnullを返します。例えば、Object.create(null)で作成されたオブジェクトや、すべてのオブジェクトの終点であるObject.prototypeのプロトタイプはnullとなります。
システム開発において、オブジェクトがどのような継承関係にあるのか、特定のプロパティやメソッドがどこから来ているのかを理解することは非常に重要です。このメソッドは、デバッグ時やオブジェクトの挙動を深く分析したいときに、オブジェクトのプロトタイプチェーンを辿るための基本的なツールとして活用されます。JavaScriptのオブジェクト指向の根幹であるプロトタイプベースの継承を理解する上で、このメソッドの働きは不可欠です。
構文(syntax)
1const myObject = {}; 2console.log(Object.getPrototypeOf(myObject) === Object.prototype);
引数(parameters)
obj
- obj: object: プロトタイプを取得したいオブジェクト
戻り値(return)
Object | null
指定されたオブジェクトのプロトタイプオブジェクトを返します。プロトタイプチェーンの終端に達した場合や、プロトタイプを持たないオブジェクト(例えばObject.create(null)で作成されたオブジェクト)の場合はnullを返します。