Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: instanceof, prototype chain, class, constructor, type checking

Как работает оператор instanceof?

Проверяет, является ли объект экземпляром указанного класса или конструктора, проверяя цепочку прототипов.

Короткий ответ

Оператор instanceof проверяет, присутствует ли prototype указанного конструктора в цепочке прототипов объекта. Он возвращает true, если объект был создан с помощью данного класса или его родительского класса. Это полезно для проверки типа объекта в runtime, особенно при работе с наследованием.

Длинный ответ

Оператор instanceof в JavaScript используется для проверки, принадлежит ли объект к определённому классу или функции-конструктору. Он проверяет цепочку прототипов объекта на наличие свойства prototype указанного конструктора.

Как это работает

Когда вы пишете obj instanceof Constructor, JavaScript проходит по цепочке прототипов объекта obj и сравнивает каждый прототип с Constructor.prototype. Если совпадение найдено, возвращается true, иначе false.

Пример кода

class Animal {}
class Dog extends Animal {}

const dog = new Dog();
console.log(dog instanceof Dog);    // true
console.log(dog instanceof Animal); // true
console.log(dog instanceof Object); // true

const obj = {};
console.log(obj instanceof Dog);    // false

Где применяется

  • Проверка типа объекта перед вызовом специфических методов
  • Обработка ошибок (проверка, является ли ошибка экземпляром определённого класса)
  • Работа с полиморфизмом в ООП

Важные нюансы

  • Не работает с примитивами (числа, строки, булевы значения) — всегда возвращает false
  • Может давать неожиданные результаты при работе с разными фреймами (iframes), так как у них разные глобальные объекты
  • Для проверки типов примитивов используйте typeof

Вывод: instanceof — это надёжный способ проверки принадлежности объекта к классу в иерархии наследования, особенно полезный при работе с пользовательскими классами и наследованием в JavaScript.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#instanceof

#prototype chain

#class

#constructor

#type checking

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию