Object.getPrototypeOf()

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

試してみましょう

構文

Object.getPrototypeOf(obj)

引数

obj

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

返値

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

getPrototypeOf の使用

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

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

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

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

仕様書

Specification
ECMAScript Language Specification
# sec-object.getprototypeof

ブラウザーの互換性

BCD tables only load in the browser

Opera 固有のメモ

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

関連情報