0
点赞
收藏
分享

微信扫一扫

手写instanceof方法

夕颜合欢落 2022-03-12 阅读 61
<script>
          /*
          原理:
          instanceof运算符用于判断构造函数的prototype属性是否出现在对象的原型链中的任何位置
          实现步骤:
          1,首先获取类型的原型
          2,然后获得对象的原型
          3,然后一直循环判断对象的原型是否等于类型的原型,知道对象原型为null,因为原型链最终为null
          */
         function myInstanceof(left,right){
          //     获取对象的原型
          let proto = Object.getPrototypeOf(left)
          // 获取构造函数的prototype对象
          let prototype = right.prototype
          // 判断构造函数的prototype是不是在对象的原型链上
          while(true){
               if(!proto) return false
               if(proto === prototype) return true

               proto = Object.getPrototypeOf(proto)
          }
         }
     </script>
举报

相关推荐

0 条评论