A instanceof B。
instanceof关键字用于判断一个对象A是不是构造函数B的实例。
其原理就是如果A的原型链上有B的原型,那么就返回true,否则就返回false;
// 手写instanceof
function _instanceof(obj1,OBJ){
// 实例对象的原型
let proto = obj1.__proto__;
// 终止条件:因为原型链的尽头是null,到了null就说明没找到
while(proto!=null)
{
// 如果实例对象的原型和构造函数的原型一样就返回true
if(proto==OBJ.prototype)
return true;
else
{
// 如果不同,就顺着原型链继续找
proto = proto.__proto__;
}
}
// 如果均不一样就返回false
return false;
}