Почему Object.prototype instanceof Object false?

Почему следующее возвращает false?

Object.prototype instanceof Object

Ответ 1

Потому что он в основном спрашивает, наследует ли Object.prototype объект Object .prototype: это не так.

a instanceof b эквивалентен b.prototype.isPrototypeOf(a) - он проверяет, находится ли b.prototype в цепочке прототипов a. В вашем случае это не в цепочке, потому что это начало самой цепи. isPrototypeOf не является рефлексивным.

Ответ 2

Ссылка MDN:

Оператор instanceof проверяет, имеет ли объект в своем прототипе связать свойство prototype конструктора.