Сводка
Метод 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' в этой спецификации. |
Стандарт |
Совместимость с браузерами
Возможность | 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()