Instance - Это экземпляр.
Используя A instanceof B
, Вы как бы спрашиваете: является ли А
экземпляром класса B
?
Классов у нас нет, но есть прототипное наследование и функции-консструкторы взамен.
Экземпляр возвращается конструктором через new неявно, или же если в конструкторе Вы строго укажите какой объект, в качестве экземпляра, будет возвращён.
В примере же указано что функция-конструктор должна возвращать себя же.
Таким образом, фукнция - не экземпляр самой себя.
Отсюда и new F() instanceof F
- false;
Но!
Функции в JS являются экземплярами класса Function.
А в примере, как уже писалось выше, функция конструтор возвращает саму себя, следовательно, возвращает объект-экземпляр клаcса Function.
Отсюда и new F() instanceof Function
- true;