This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Object.prototype.isPrototypeOf()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Сводка
МетодisPrototypeOf() проверяет, входит ли объект в цепочку прототипов другого объекта.
Примечание:МетодisPrototypeOf() отличается от оператораinstanceof. Выражение "object instanceof AFunction" проверяет, присутствует ли в цепочке прототипов объектаobject объектAFunction.prototype, а не сам объектAFunction.
In this article
Синтаксис
prototypeObj.isPrototypeOf(object)
Параметры
prototypeObjОбъект, проверяемый на каждую ссылку в цепочке прототипов аргументаobject.
objectОбъект, в чьей цепочке прототипов производится поиск.
Описание
МетодisPrototypeOf() позволяет вам проверять, существует ли объект в цепочке прототипов другого объекта.
Например, рассмотрим следующую цепочку прототипов:
function Fee() { // ...}function Fi() { // ...}Fi.prototype = new Fee();function Fo() { // ...}Fo.prototype = new Fi();function Fum() { // ...}Fum.prototype = new Fo();Если позже вы создадите экземпляр объектаFum и захотите проверить, что прототипFi существует в цепочке прототиповFum, вы можете сделать следующее:
var fum = new Fum();// ...if (Fi.prototype.isPrototypeOf(fum)) { // здесь безопасно что-то делать}Таким образом, вместе с операторомinstanceof, это особенно пригождается, если у вас есть код, который может работать только с объектами, имеющими определённую цепочку прототипов, к примеру, чтобы он мог гарантировать, что в объекте присутствуют определённые методы или свойства.
Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.prototype.isprototypeof> |
Совместимость с браузерами
Loading…