instanceof原理是什么,请写代码表示

Posted 沿着路走到底

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了instanceof原理是什么,请写代码表示相关的知识,希望对你有一定的参考价值。

instanceof 的原理

例如 f instanceof Foo

顺着 f.__proto__ 向上查找(原型链)

看能否找到 Foo.prototype

 

代码

/**
 * @description 手写 instanceof
 */

/**
 * 自定义 instanceof
 * @param instance instance
 * @param origin class or function
 */
export function myInstanceof(instance: any, origin: any): boolean 
    if (instance == null) return false // null undefined

    const type = typeof instance
    if (type !== \'object\' && type !== \'function\') 
        // 值类型
        return false
    

    let tempInstance = instance // 为了防止修改 instance
    while (tempInstance) 
        if (tempInstance.__proto__ === origin.prototype) 
            return true // 配上了
        
        // 未匹配
        tempInstance = tempInstance.__proto__ // 顺着原型链࿰

以上是关于instanceof原理是什么,请写代码表示的主要内容,如果未能解决你的问题,请参考以下文章

JS 原生方法原理探究:如何实现 instanceof?

理解Javascript_07_理解instanceof实现原理

javascript中原型链与instanceof 原理

instanceof的原理

typeof & instanceof 原理

JS基础-instanceof原理及其实现