Задать вопрос
@kirillleogky

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

5e183195b44cc380495024.png
Подскажите не могу понять почему alert( new F() instanceof F ); выведет false ?
  • Вопрос задан
  • 1195 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Instance - Это экземпляр.
Используя A instanceof B, Вы как бы спрашиваете: является ли А экземпляром класса B?
Классов у нас нет, но есть прототипное наследование и функции-консструкторы взамен.

Экземпляр возвращается конструктором через new неявно, или же если в конструкторе Вы строго укажите какой объект, в качестве экземпляра, будет возвращён.

В примере же указано что функция-конструктор должна возвращать себя же.
Таким образом, фукнция - не экземпляр самой себя.
Отсюда и new F() instanceof F - false;

Но!
Функции в JS являются экземплярами класса Function.
А в примере, как уже писалось выше, функция конструтор возвращает саму себя, следовательно, возвращает объект-экземпляр клаcса Function.
Отсюда и new F() instanceof Function - true;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
15 дек. 2024, в 01:44
400 руб./за проект
15 дек. 2024, в 01:17
100000 руб./за проект
14 дек. 2024, в 23:53
1000 руб./за проект