JavaScript/Object/getPrototypeOf
< JavaScript | Object
Object.getPrototypeOf()
は、指定されたオブジェクトのプロトタイプ(内部の Prototype
プロパティ)を返すメソッドです。このメソッドは、オブジェクトのプロトタイプチェーンを調べるために使用されます[1]。
構文
編集Object.getPrototypeOf(obj)
obj
: プロトタイプを取得する対象のオブジェクト。
例
編集オブジェクトのプロトタイプを取得するプログラム
編集以下のプログラムは、Object.getPrototypeOf()
を使用してオブジェクトのプロトタイプを取得します。
const obj = {}; const proto = Object.getPrototypeOf(obj); console.log(proto === Object.prototype); // true
このプログラムでは、Object.getPrototypeOf()
を使用して obj
オブジェクトのプロトタイプを取得しています。obj
のプロトタイプは Object.prototype
です。
継承されたプロトタイプを取得するプログラム
編集以下のプログラムは、Object.getPrototypeOf()
を使用して継承されたプロトタイプを取得します。
function Person(name) { this.name = name; } Person.prototype.greet = function() { console.log(`Hello, my name is ${this.name}`); }; const john = new Person('John Doe'); const proto = Object.getPrototypeOf(john); console.log(proto === Person.prototype); // true
このプログラムでは、Object.getPrototypeOf()
を使用して john
オブジェクトのプロトタイプを取得しています。john
のプロトタイプは Person.prototype
です。
注意点
編集- プロトタイプチェーン:
Object.getPrototypeOf()
は、指定されたオブジェクトの直接のプロトタイプを返します。プロトタイプチェーンをたどるには、再帰的にこのメソッドを呼び出す必要があります。 - null: プロトタイプチェーンの終端(
Object.prototype
のプロトタイプ)はnull
です。 - 非オブジェクト: 非オブジェクト(例:
null
やundefined
)を指定すると、TypeError
が発生します。
脚註
編集- ^ これは、オブジェクトのプロトタイプを取得するために使用されます。
外部リンク
編集