instanceof 的原理和实现

2019-06-27  本文已影响0人  椰果粒

instanceof是怎么判断数据类型的

instanceof是通过原型链判断,A instanceof B表示:在A的原型链中一直向上查找,是否有原型等于B.prototype。如果一直找到顶端,仍然没有等于B.prototype的,就返回false。

原生实现一个instanceof

function instance_of(L, R){
    L = L.__proto__;// 隐式原型
    let P = R.prototype;// 显式原型
    while(true){
        if(L === null){
            return false
        }else if(L === P){
             return true
        }
        L = L.__proto__
    }
}
instance_of([], Array) // true
instance_of([], String) // false
上一篇 下一篇

猜你喜欢

热点阅读