Метод isPrototypeOf()
перевіряє, чи існує об'єкт у ланцюжку прототипів іншого об'єкта.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
isPrototypeOf()
відрізняється від оператора instanceof
.У виразі "object instanceof AFunction
" ланцюжок прототипів об'єкта object
перевіряється на AFunction.prototype
, а не на сам об'єкт AFunction
.
Синтаксис
prototypeObj.isPrototypeOf(object)
Параметри
object
- Об'єкт, чий ланцюжок прототипів перевірятиметься.
Значення, що повертається
Булеве значення
, що зазначає, чи присутній об'єкт, що викликав метод, у ланцюжку прототипів вказаного об'єкта.
Помилки, що викидаються
Опис
Метод isPrototypeOf()
дозволяє перевірити, чи існує об'єкт у ланцюжку прототипів іншого об'єкта.
Приклади
Цей приклад демонструє, що Baz.prototype
, Bar.prototype
, Foo.prototype
та Object.prototype
присутні у ланцюжку прототипів об'єкта baz
:
function Foo() {}
function Bar() {}
function Baz() {}
Bar.prototype = Object.create(Foo.prototype);
Baz.prototype = Object.create(Bar.prototype);
var baz = new Baz();
console.log(Baz.prototype.isPrototypeOf(baz)); // true
console.log(Bar.prototype.isPrototypeOf(baz)); // true
console.log(Foo.prototype.isPrototypeOf(baz)); // true
console.log(Object.prototype.isPrototypeOf(baz)); // true
Метод isPrototypeOf()
, разом з оператором instanceof
можуть стати в нагоді, коли ви маєте код, який працює тільки з об'єктами, похідними від певного ланцюга прототипів, наприклад, щоб гарантувати, що певні методи або властивості будуть присутні на цьому об'єкті.
Наприклад, перевіримо, чи походить об'єкт baz
від Foo.prototype
:
if (Foo.prototype.isPrototypeOf(baz)) {
// виконати безпечні дії
}
Специфікації
Специфікація | Статус | Коментар |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Початкове визначення. |
ECMAScript 5.1 (ECMA-262) The definition of 'Object.prototype.isPrototypeOf' in that specification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Object.prototype.isPrototypeOf' in that specification. |
Standard | |
ECMAScript (ECMA-262) The definition of 'Object.prototype.isPrototypeOf' in that specification. |
Living Standard |
Сумісність з веб-переглядачами
BCD tables only load in the browser