Object.getPrototypeOf()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Сводка

Метод Object.getPrototypeOf() возвращает прототип (то есть, внутреннее свойство [[Prototype]]) указанного объекта.

Синтаксис

Object.getPrototypeOf(obj)

Параметры

obj

Объект, чей прототип будет возвращён.

Примеры

js
var proto = {};
var obj = Object.create(proto);
Object.getPrototypeOf(obj) === proto; // true
js
> Object.getPrototypeOf('foo')
TypeError: "foo" is not an object  // код ES5
> Object.getPrototypeOf('foo')
String.prototype                   // код ES6

Примечания

В ES5, если параметр obj не является объектом, будет выброшено исключение TypeError. В ES6, параметр будет приведён к объекту Object.

js
> Object.getPrototypeOf('foo')
TypeError: "foo" is not an object  // код ES5
> Object.getPrototypeOf('foo')
String.prototype                   // код ES6

Спецификации

Specification
ECMAScript Language Specification
# sec-object.getprototypeof

Совместимость с браузерами

BCD tables only load in the browser

Примечания по Opera

Хотя старые версии Opera и не поддерживают метод Object.getPrototypeOf(), Opera поддерживает нестандартное свойство Object.prototype.__proto__, начиная с версии Opera 10.50.

Смотрите также