zoukankan      html  css  js  c++  java
  • instanceof实现原理

    instanceof主要用于判断某个实例是否属于某个类型,也可用于判断某个实例是否是其父类型或者祖先类型的实例。

    instanceof 主要的实现原理就是只要右边变量的 prototype 在左边变量的原型链上即可。因此,instanceof 在查找的过程中会遍历左边变量的原型链,直到找到右边变量的 prototype,如果查找失败,则会返回 false。

    function instanceof(left, right) {
        const rightVal = right.prototype
        const leftVal = left.__proto__
        // 若找不到就到一直循环到父类型或祖类型
        while(true) {
            if (leftVal === null) {
                return false
            }
            if (leftVal === rightVal) {
                return true
            }
            leftVal = leftVal.__proto__ // 获取祖类型的__proto__
        }
    }
    
  • 相关阅读:
    C++
    复盘-2018.6.8~2020.6.8
    C++
    C++
    C++
    C++
    Python学习笔记(十)- 面向对象(一)
    SSHException: Error reading SSH protocol banner
    docker 安装mysql
    docker 安装部署
  • 原文地址:https://www.cnblogs.com/renzhiwei2017/p/10367450.html
Copyright © 2011-2022 走看看