美文网首页
JS基础-instanceof原理及其实现

JS基础-instanceof原理及其实现

作者: silly鸿 | 来源:发表于2022-02-14 13:00 被阅读0次

    实现原理

    instanceof的实现实际上是调用JS的内部函数 [[HasInstance]] 来实现的
    其实现原理是:只要右边变量的prototype在左边变量的原型链上即可。因此instanceof在查找过程中会遍历边变量的原型链,直到找到右边变量的prototype,如果查找失败会返回false。

    instanceof 实现

    L 的 proto 是不是等于 R.prototype,不等于再找 L.proto.proto 直到 proto 为 null

    // L 表示左表达式,R 表示右表达式
    function instance_of(L, R) {
      var O = R.prototype;
      L = L.__proto__;
      while (true) {
        if (L === null) return false;
        // 这里重点:当 O 严格等于 L 时,返回 true
        if (O === L) return true;
        L = L.__proto__;
      }
    }
    

    参考

    instance原理
    instance实现

    相关文章

      网友评论

          本文标题:JS基础-instanceof原理及其实现

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