原型链中的instanceof探索
写在前面:如果此篇博客中有任何错误的地方,欢迎大家的指正!让我们共同进步!
如果觉得这篇博客有用就点赞+收藏+关注三连吧!
记录一下今天所学JS原型链中关于instanceof判定的探索。
本人也在学习中,欢迎各位同学的指正!
理解如下:
A是一个实例,B是一个构造函数
B只能走一步,找到B.prototype
而A若有__proto__,则可以一直向下寻找,直到找不到为止。
举例如下,判断两个instanceof语句的判定结果。
f1 instanceof Foo 图示解析如下
f1 instanceof Object 图示解析如下
举例2
分别判断下面的语句的正确与否。
执行结果截图如下:
分析如下:
- Object instanceof Function
True
这里的__proto__是因为Object()是new Function()产生的,因此他也是Function函数的实例对象,进而有__proto__属性。
-
Object instanceof Object
True
-
Function instanceof Function
True
因为Function是 new自己产生的,因此才有Function()的两个原型指向同一个。
- Function instanceof Object
True
- Object instranceof Foo
False
(Function instranceof Foo)同理也为false
整个原型链如图: