JavaScript/Object/getPrototypeOf

カテゴリ:Book:JavaScript#Object/getPrototypeOf%20

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. これは、オブジェクトのプロトタイプを取得するために使用されます。

外部リンク

カテゴリ:Book:JavaScript#Object/getPrototypeOf%20 カテゴリ:JavaScript
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension