js高级-对于instanceof的探讨

1.instanceof()是如何判断的?

*表达式  A instanceof B 

A 为实例对象 B为构造函数(对象)

*判断标准 如果B函数显式的原型对象(注意只看b.protootype是否在a原型链上)在A对象的原型链上(有交叉),则返回true/否则false

 

例如对 Object instanceof Object 的结果true

前者作为一个对象实例,他是function的实例,它的_proto_ === function.prototype 而function.prototype是一个空的object实例对象,它的_proto_指向object函数原型

后者它作为一个object()构造函数,他的.prototype执行object函数原型

所以可以判断为true

 

要点在于,实例对象走隐式原型链,构造函数走显式原型链,如果两者皆是则两个属性都需要考虑

posted @ 2021-12-30 22:20  嗜血汽车人  阅读(46)  评论(0)    收藏  举报