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 です。
  • 非オブジェクト: 非オブジェクト(例: nullundefined)を指定すると、TypeError が発生します。

脚註

編集
  1. ^ これは、オブジェクトのプロトタイプを取得するために使用されます。

外部リンク

編集