# 手写instanceof
- 利用while
function myInstanceof(left, right) {
let prototype = right.prototype
left = left.__proto__
while (true) {
if (left === null || left === undefined){
return false
}
if (prototype === left){
return true
}
left = left.__proto__
}
}
let getresult=myInstanceof(function fun(){},Object)
console.log(getresult)
- 递归处理
function weiInstanceof(a,b){
if(arguments.length === 2){
// 递归操作
if(a&&a.__proto__&&(typeof(a)==='object'||typeof(a)==='function')){
console.log(a.__proto__===b.prototype)
if(a.__proto__ === b.prototype){
return true
}else{
return weiInstanceof(a.__proto__,b)
}
}else{
return false
}
// return true
}else {
return false
}
}
let test=weiInstanceof(function(){},Object)
console.log(test)