Object.getPrototypeOf()

Object.getPrototypeOf() メソッドは、指定されたオブジェクトのプロトタイプ (つまり、内部プロパティ [[Prototype]] の値) を返します。

構文

Object.getPrototypeOf(obj)

引数

obj
プロトタイプを取得したいオブジェクト。

返値

指定されたオブジェクトのプロトタイプです。何も継承していないオブジェクトの場合は null です。

getPrototypeOf の使用

var proto = {};
var obj = Object.create(proto);
Object.getPrototypeOf(obj) === proto; // true

オブジェクト以外の型変換

ES5 では引数 obj がオブジェクトではない場合 TypeError が発生します。しかし ES2015 では対応する Object に変換されてから処理されます。

Object.getPrototypeOf('foo');
// TypeError: "foo" is not an object (ES5 code)
Object.getPrototypeOf('foo');
// String.prototype                  (ES2015 code)

仕様書

仕様書
ECMAScript (ECMA-262)
Object.getPrototypeOf の定義

ブラウザーの互換性

BCD tables only load in the browser

Opera 固有のメモ

古いバージョンの Opera は Object.getPrototypeOf() に対応していませんが、 Opera 10.50 以降で標準外の __proto__ に対応しています。

関連情報