Skip to main content
Практика завдань

Чому оператор instanceof потрібен у JavaScript

Що таке instanceof

Оператор instanceof в JavaScript перевіряє, чи належить об'єкт до конкретного класу (або функції-конструктора) у його ланцюгу прототипів.

Синтаксис:

javascript
obj instanceof Constructor
  • obj — об'єкт, який ми перевіряємо.
  • Constructor — функція-конструктор або клас.

Оператор повертає true, якщо об'єкт obj знаходиться в ланцюзі прототипів конструктора Constructor.

Приклад

javascript
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

javascript
typeof [] // "object" [] instanceof Array // true

Висновок

  • Використовуйте instanceof, щоб зрозуміти, чи належить об'єкт до конкретного типу або був створений за допомогою new SomeConstructor.
  • Це потужний інструмент, але не єдиний спосіб перевірки типу (наприклад, Object.prototype.toString.call(...) також популярний).
  • Будьте обережні в сценаріях крос-середовища — instanceof може поводитися непередбачувано.

Важливо:

instanceof працює лише з об'єктами, створеними за допомогою new або з явно встановленим prototype. Не працює з примітивами.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань