zoukankan      html  css  js  c++  java
  • 原型和原型链-instanceof的底层实现原理

    instanceof的底层实现原理(参考文档

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

    function instance_of(L, R) {     // L 表示instanceof左边,R 表示instanceof右边
        let O = R.prototype;         // 取 R 的显示原型
        L = L.__proto__;             // 取 L 的隐式原型
        while (true) {               // 循环执行,直到 O 严格等于 L
             if (L === null) return false;
             if (O === L) return true;
             L = L.__proto__;        // 获取祖类型的__proto__
        }
    }    
  • 相关阅读:
    2021-4-20 日报博客
    2021-4-19 日报博客
    2021-4-17 周报博客
    java web
    java web
    java web
    java
    java
    周末总结8
    java web
  • 原文地址:https://www.cnblogs.com/memphis-f/p/12029483.html
Copyright © 2011-2022 走看看