JavaScript 手写仿instanceof

定义

MDN 中,描述是这样的。
instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。

实现一个仿instanceof功能的"_instanceof"函数,该函数可以判断首参的原型链中是否在第二个Fn构造函数的原型的 prototype 属性,核心步骤有:

  1. 获取首个对象参数的原型对象
  2. 获取Fn函数的原型对象
  3. 进入死循环,当两个参数的原型对象相等时返回true
  4. 当两个参数的原型对象不相等时获取首个对象参数原型的原型并且循环该步骤直到null时返回false
javascript 复制代码
const _instanceof = (target, Fn) => {
    let proto = target.__proto__
    let prototype = Fn.prototype
    while(true) {
        if(proto === Fn.prototype) return true
        if(proto === null) return false
        proto = proto.__proto__
    }
}

这里要了解一下原型与原型链

相关推荐
满栀58525 分钟前
分页插件制作
开发语言·前端·javascript·jquery
froginwe1128 分钟前
C 标准库 - <stdio.h>
开发语言
zwtahql33 分钟前
php源码级别调试
开发语言·php
qq_4061761439 分钟前
深入剖析JavaScript原型与原型链:从底层机制到实战应用
开发语言·前端·javascript·原型模式
弓.长.1 小时前
React Native 鸿蒙跨平台开发:BottomSheet 底部面板详解
javascript·react native·react.js
摘星编程1 小时前
React Native for OpenHarmony 实战:Permissions 权限管理详解
javascript·react native·react.js
{Hello World}1 小时前
Java抽象类与接口深度解析
java·开发语言
jiaguangqingpanda2 小时前
Day22-20260118
java·开发语言
闲蛋小超人笑嘻嘻2 小时前
Vue 插槽:从基础到进阶
前端·javascript·vue.js
摘星编程2 小时前
React Native for OpenHarmony 实战:SearchBar 搜索栏详解
javascript·react native·react.js