Что будет выведено в консоль?
Ответ:
true
Объяснение:
instanceof не учитывает саму функцию при проверке, а только prototype, который проверяется на совпадения в прототипной цепочке.
И в данном примере a.__proto__ == B.prototype, поэтому instanceof возвращает true.
Таким образом, по логике instanceof, именно prototype в действительности определяет тип, а не функция-конструктор.
Код для проверки:
function A() {} function B() {} A.prototype = B.prototype = {}; let a = new A(); console.log( a instanceof B );