美文网首页
instanceof 原理

instanceof 原理

作者: 孟大仙 | 来源:发表于2021-04-19 15:00 被阅读0次

    1. instanceof 介绍

    instanceof 是通常用于检测某个实例对象是否是这个构造函数的实例。
    例如:
    function P(){}
    const p1 = new P()
    p1 instanceof P // true

    2. instanceof 原理

    构造函数原型prototype
    这个构造函数的prototype 属性指向 这个构造器的原型对象,实例对象的proto指向的也是原型对象。即 p1.proto === P.prototype 为true就代表是它的实例

    3. 实现instance_of函数

    function instance_of(p, Fn) {
      const proto = Fn.prototype
      while (true) {
        if (p === null) {
          return false
        }
        if (p === proto) {
          return true
        }
        p = p.__proto__
      }
    }
    
    function P() {
    }
    function P2() {
    }
    const p1 = new P()
    const p2 = new P2()
    console.log(instance_of(p1, P)) // true
    console.log(instance_of(p2, P)) // false
    console.log(instance_of(p2, P2)) // true
    
    

    相关文章

      网友评论

          本文标题:instanceof 原理

          本文链接:https://www.haomeiwen.com/subject/ljmilltx.html