JS实现instanceof

2023-02-17 16:46:24

转自:js实现instanceof_DOM曼珠沙华的博客-CSDN博客

作用:用来判断右边构造函数的原型对象,是否在左边实例对象的原型链上。

实现步骤:

        1. 获取类型的原型

        2.获取对象的原型

        3.循环判断类型的prototype是否在对象的原型链上

function myInstanceof(obj,constructor) {
    let prototype = constructor.prototype;
    if (obj === null || obj === undefined || !obj || (typeof obj !== 'object' && typeof obj !== 'function')) {
        return false;
    }
    let proto = obj.__proto__;
    // let proto = Object.getPrototypeOf(left)  //写法2 获取左边对象的原型
    while (true) {
        if (proto == null) return false;
        if (proto === prototype) return true;
        proto = proto.__proto__;
    }
}
var a={"qqq":"111","22":"ee"};
console.log(myInstanceof(a,Object))
  • 作者:yin_ping1101
  • 原文链接:https://blog.csdn.net/yin_ping1101/article/details/124561982
    更新时间:2023-02-17 16:46:24