1PeGaS
@1PeGaS

Почему не происходит проверки на класс объекта?

Почему если функция возвращает объект класса Class1 в переменную o то во внешнем коде через instanceof проверка не происходит, хотя o.constructor показывает Class1 ? Если же создать объект класса Class1 без функции, тогда instanceof выдаст true.

function fabric() {
  function Class1() {

	}
  return new Class1();
}
var o = fabric();

alert( o instanceof Class1 );
  • Вопрос задан
  • 164 просмотра
Решения вопроса 2
@RidgeA
потому что в области видимости, где находится alert не видно функцию Class1. Надо вынести ее из функции fabric

function Class1() {
}

function fabric() {
  return new Class1();
}
var o = fabric();

alert( o instanceof Class1 );
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
У вас проблема с областью видимости - Class1 снаружи фабрики не определён.
Если же её исправить, то всё работает:
59f6fddf80dc5674447010.png
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы