判断在实例的原型链中找到该构造函数的prototype属性所指向的原型对象, 存在就返回true。
function myInstanceof(left, right) {
let proto = left.__proto__
let protoType = right.prototype
while(true) {
if (proto === null) {
return false
}
if (proto === protoType) {
return true
}
proto = proto.__proto__
}
}
// 利用原型链知识
function myInstance(left, right) {
let p = left
while (p) {
if (p === right.prototype) return true
p = p.__proto__
}
return false
}