2022-08-29----手动实现instanceof

85 阅读1分钟

instanceof核心就是在原型链上查找,废话不多说,直接上代码

function myInstanceof(target1,target2){
//基础数据类型 直接返回false
if(typeof target1!=='object'||target1===null){
return false;
}
//获取参数的原型对象
let proto = Object.getPrototypeOf(target1);
while(true){
//查到最顶层 返回false
if(proto===null) return false;
//找到相同的返回true
if(proto===target2.prototype) return true;
proto = Object.getPrototypeOf(proto);
}


}