判断a是否存在 于Object的实例的原型上面即可
module.exports = function myInstanceof(target,origin) {
// 1 首先把 判断的对象 target 传进去,其次传入Object的实例 origin
// 2 把target的 原型的对象 __proto__ 用proto接收 (不接也可以)
const proto = target.__proto__;
// 3 分支 如果存在 => 判断是否 === Object的实例的原型 => 在说明属于,不在递归传入proto,保证每次传入参数不一致,且是往上查找,找2层没找到,null.__proto__ => 直接进false
if (proto) {
if (origin.prototype === proto) {
return true
} else {
return myInstanceof(proto,origin)
}
}
else {
// 4 如果不存在 proto 说明没有原型 直接return false
return false
}
}