Сводка
Метод Object.getPrototypeOf() возвращает прототип (то есть, внутреннее свойство [[Prototype]]) указанного объекта.
Синтаксис
Object.getPrototypeOf(obj)
Параметры
obj- Объект, чей прототип будет возвращён.
Примеры
var proto = {};
var obj = Object.create(proto);
Object.getPrototypeOf(obj) === proto; // true
> Object.getPrototypeOf('foo')
TypeError: "foo" is not an object // код ES5
> Object.getPrototypeOf('foo')
String.prototype // код ES6
Примечания
В ES5, если параметр obj не является объектом, будет выброшено исключение TypeError. В ES6, параметр будет приведён к объекту Object.
> Object.getPrototypeOf('foo')
TypeError: "foo" is not an object // код ES5
> Object.getPrototypeOf('foo')
String.prototype // код ES6
Спецификации
| Спецификация | Статус | Комментарии |
|---|---|---|
| ECMAScript 5.1 (ECMA-262) Определение 'Object.getPrototypeOf' в этой спецификации. |
Стандарт | Изначальное определение. |
| ECMAScript 2015 (6th Edition, ECMA-262) Определение 'Object.getProtoypeOf' в этой спецификации. |
Стандарт |
Совместимость с браузерами
We're converting our compatibility data into a machine-readable JSON format.
This compatibility table still uses the old format,
because we haven't yet converted the data it contains.
Find out how you can help!
| Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Базовая поддержка | 5 | 3.5 (1.9.1) | 9 | 12.10 (может быть и более ранние) | 5 |
| Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Базовая поддержка | ? | ? | ? | ? | ? | ? |
На основе таблицы совместимости Kangax.
Примечания по Opera
Хотя старые версии Opera и не поддерживают меотод Object.getPrototypeOf(), Opera поддерживает нестандартное свойство __proto__, начиная с версии Opera 10.50.
Смотрите также
Object.prototype.isPrototypeOf()Object.setPrototypeOf()Object.prototype.__proto__- Запись в блоге Джона Резига о getPrototypeOf()