大東-博客

instanceof 详解

MDN 解释

instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

语法

1
object instanceof constructor

例如:

1
2
3
console.log(Object instanceof Function); // true
console.log(Function instanceof Object); // true
console.log(Function instanceof Function); //true

instanceof 的判断规则是沿着第一参数的__proto__这条线来找,同时沿着第二个参数的prototype这条线来找,如果两条线能找到同一个引用,即同一个对象,那么就返回 true,如果找到终点还未重合,则返回 false。

参考资料:

本节的图片来源:http://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/figure1.jpg


个人知乎
https://www.zhihu.com/people/sxd1991/