Загрузка...
Загрузка...
Оператор instanceof в JavaScript проверяет, принадлежит ли объект определённому классу (или функции-конструктору) в его цепочке прототипов.
obj instanceof Constructor
obj — объект, который мы проверяем.Constructor — функция-конструктор или класс.Оператор возвращает true, если объект obj находится в цепочке прототипов конструктора Constructor.
function Animal() {}
function Dog() {}
const rex = new Dog();
console.log(rex instanceof Dog); // true
console.log(rex instanceof Animal); // false
Если бы Dog наследовал Animal, тогда rex instanceof Animal было бы true.
Оператор instanceof работает так:
obj.__proto__.Constructor.prototype.true.__proto__ и повторяет.typeof [] // "object"
[] instanceof Array // true
instanceof, чтобы понять, принадлежит ли объект определённому типу или был ли он создан через new SomeConstructor.Object.prototype.toString.call(...) тоже популярен).instanceof может вести себя непредсказуемо.Важно:
instanceof работает только с объектами, созданными через new или с явно установленным prototype. С примитивами не работает.