Why does the following return false?
Object.prototype instanceof Object
Because it basically asks whether Object.prototype
does inherit from Object
's .prototype
object: It does not.
a instanceof b
is equivalent to b.prototype.isPrototypeOf(a)
- it tests whether b.prototype
is in the prototype chain of a
. In your case, it is not in the chain, because it is the start of the chain itself. isPrototypeOf
is not reflexive.
Referencing MDN:
The
instanceof
operator tests whether an object has in its prototype chain theprototype
property of a constructor.