手写instanceof的原理
原理:只要右边的变量的prototype在左边变量的原型链上即可。
instanceof在查找的过程中会遍历左边变量的原型链,直到找到右边变量的prototype,如果查找失败,则返回false.
function new_instance_of(leftVaule, rightVaule) {
let rightProto = rightVaule.prototype; // 取右表达式的 prototype 值
leftVaule = leftVaule.__proto__; // 取左表达式的__proto__值
while (true) {
if (leftVaule === null || leftVaule === rightProto) {
return false;
}
leftVaule = leftVaule.__proto__
}
}