JS实现instancof

79 阅读1分钟

instanceof是处理typeof判断类型的一种方式

A instanceof B判断类型的原理是, 根据原型链去判断A的类型, 判断A的__proto__是否在B的prototype上

function myInstanceof(target, origin) {
// 因为是去判断原型链上, 所以要一直循环去找
    while(target) {
        if(target.__proto__ === origin.prototype) {
            return true
        }
        target = target.__proto__
    }
    return false
}

let a = [1,2,3]
console.log(myInstanceof(a,Array));  // true
console.log(myInstanceof(a,Object));  // true