手写instanceof

33 阅读1分钟
function _instanceof(left, right) {
    if (!left.__proto__) return false; // left实例没有原型链了
    
    let proto = left.__proto__;
    
​
    while (true) {
        if (proto == null) {
            return false;
        }        
​
        if (proto == right.prototype) {
            return true;
        }
        
        proto = proto.__proto__;
    }
}