//当a的__proto__等于b的prototype时返回true,否则返回false
function myInstanceof(a,b){
//获取a的__proto__
let proto = a.__proto__
//获取b的prototype
let prototype = b.prototype
//循环查找a的__proto__:直到a的__proto__等于b的prototype,说明找到了。或者a的__proto__等于null,说明找到头了。
while(true){
//a的__proto__等于null,说明找到头了
if(proto === null){
return false
}
//a的__proto__等于b的prototype,说明找到了
if(proto === prototype){
return true
}
//本次没找到,再往上一层找
proto = proto.__proto__
}
}
JS:instanceof的原理
最新推荐文章于 2024-06-14 15:02:13 发布