instanceof的底层实现原理,手动实现一个instanceof

1,296 阅读1分钟

instanceof 的作用

引用数据类型判断: 用来判断一个引用数据类型是否属于构造函数

继承关系判断: 用来判断一个实例是否属于它的父类型

实现原理

首先判断左边的变量的隐式原型(proto)是否全等于右边的显式原型(prototype),如果相等返回true,如果不等则沿着原型链依次向上进行判断,如果都不等则返回false

手写实现

function instance_of(L, R) {
    var RO = R.prototype;
    var L = L.__proto__;
    while(true) {
        if (L === null) return false;
        if (RO ==== L) return true;
        L = L.__proto__
    }
}