JS 手写instanceof的原理

199 阅读1分钟

手写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__ 
    }
}