【前端面经】instanceof相关知识

2023-11-19

原理
instanceof是javascript语言中的一个运算符,用于检测一个对象是否是一个类或者构造函数的实例。它的语法是boject instanceof constructor,其中object是要检测的对象,constructor是要检测的类或者构造函数。

instanceof运算符的原理是通过判断对象的原型链中是否存在构造函数的原型来确定对象是否是该类或者构造函数的实例。具体来说,instanceof运算符会沿着对象的原型链向上查找,直到找到构造函数的原型或者到达原型链的末端。如果找到了构造函数的原型,就说明该对象是该类或者构造函数的实例,返回true;否则,返回false。

手写instanceof

function myInstanceof(obj,constructor){
    let proto=Obejct.getPrototypeOf(obj);
    while(proto!==null){
        if(proto===constructor.prototype){
            return true;
        }
        proto=Object.getPrototypeOf(proto);
    }
    return false;
}

这个函数接受两个函数,obj是要检测的对象,constructor是要检测的类或者构造函数,它的实现原理与Javascript中的instanceof运算符类似,通过沿着对象的原型链向上查找来确定对象是否是该类或者该构造函数的实例。

具体来说,这个函数首先获取obj的原型对象,然后不断沿着原型链向上查找,直到找到构造函数的原型或者到大原型链的末端。如果找到了构造函数的原型,就说明该对象是该类或者构造函数的实例,返回true;否则,返回false。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【前端面经】instanceof相关知识 的相关文章

随机推荐

  • C++之多态详解

    文章目录 前言 一 多态的概念 概念 二 多态的定义及实现 1 多态的构成条件 2 虚函数 3 虚函数的重写 3 1多态条件探究 1 多态条件探究一 不符合重写 virtual函数 2 多态条件探究二 不符合重写 不是父类的指针或者引用调用
  • 内存管理 kmalloc

    section 0 preface 用户态的heap 是由glibc实现的 内核则自力更生的 所以内核的heap差别挺大的 从最直观的角度去看 在进行内核模块编写的时候 我们可以调用的heap相关函数 是kmalloc 以及kfree 那么
  • 立体电影

    立体电影 百科名片 1953年5月24日立体电影首次出现 为了把观众从电视夺回来 好莱坞推出了一种新玩艺儿 立体电影 戴着特殊眼镜的观众像在观看 布瓦那魔鬼 及 蜡屋 这类惊险片那样 发现自己躲在逃跑的火车及魔鬼的后面 从而为我们带入了立体
  • 微信小程序:用户基本信息的采集

    文章目录 写作背景 getUserInfo与getUserProfile open data 头像昵称填写能力 总结 写作背景 在开发商城小程序时需要显示用户头像 昵称 手机号等信息以便后续业务的实现 因此需要通过微信小程序的API采集用户
  • ​【机器学习】数据科学中 17 种相似性和相异性度量(上)

    本文解释了计算距离的各种方法 并展示了它们在我们日常生活中的实例 限于篇幅 便于阅读 将本文分为上下两篇 希望对你有所帮助 There is no Royal Road to Geometry 欧几里得 简介 相似性和相异性 在数据科学中
  • JFinal DB.tx()事务

    1 发现问题 1 功能实现逻辑 添加一个新的系统的时候 先添加系统本身 即名称 地址 简介 将这些存入system表 得到system id 添加系统所处的服务器 由于有专门的添加服务器功能 所以这里的服务器只用填地址 如果地址对应服务器不
  • Qt设置软件启动动画(支持图片和视频俩种方式)

    目录 软件启动动画效果 静态背景 动态背景 程序启动动画 QSplashScreen 启动时加载静态图片 启动时加载视频动画 将启动动画置于所有窗口顶层 软件启动动画效果 先来看效果 下面录制了加载图片和gif动图的俩种效果 静态背景 动态
  • Mysql主从复制

    Mysql主从复制原理 1 主库开始二进制日志 binlog 2 从库执行change master 执行主库 此时主库会创建一个dump线程 用于向从库发送二进制日志 3 从库执行 start slave 开启IO SQL线程 IO线程
  • 搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了

    点击上方 视学算法 选择加 星标 或 置顶 重磅干货 第一时间送达 作者丨科技猛兽 编辑丨极市平台 Transformer 是 Google 的团队在 2017 年提出的一种 NLP 经典模型 现在比较火热的 Bert 也是基于 Trans
  • QFileInfo主要函数详解

    部分内容来自 https blog csdn net Amnes1a article details 65444966 QFileInfo主要函数详解 QFileInfo简介 扩展 文件名和路径类 文件访问权限类 文件所有者类 文件相关日期
  • 将XML格式文件转换JSON文件格式

    XMl文件转JSON字符串 1 1Maven引入依赖
  • 光栅尺的相关知识

    光栅尺的相关知识 1 光栅尺的原理 2 光栅尺的精度 3 光栅尺的制造 4 增量式光栅尺和绝对式光栅尺的区别 5 光栅尺的选择 6 光栅尺与编码器 1 光栅尺的原理 我们可以类比普通卷尺 尺子上面有刻度 以这些刻度作为基准 你只需要把要测的
  • texlive支持中文的简单方法

    1 确保tex文件的编码方式是UTF 8 2 在文档开始处添加一行命令即可 即 usepackage UTF8 ctex 如下所示 documentclass article usepackage UTF8 ctex begin artic
  • [机缘参悟-86]:清心寡欲,世外修行 ?负剑下山,闯荡江湖?

    天地者 万物之逆旅也 光阴者 百代之过客也 而浮生若梦 为欢几何
  • Android Fragment 真正的完全解析(下)

    本篇将介绍上篇博客提到的 如何管理Fragment回退栈 Fragment如何与Activity交互 Fragment与Activity交互的最佳实践 没有视图的Fragment的用处 使用Fragment创建对话框 如何与ActionBa
  • 5月10日 ksjsb抓包教程,小黄鸟无需ROOT抓包

    1 先下载抓包工具 小黄鸟 自己搜索 注意 这里下载完小黄鸟app后 安装打开时 该下载的安全证书下载 手机root权限该给的都给 2 打开小黄鸟工具 添加目标应用 快手极速版 3 启动小黄鸟 然后退出让它后台运行 打开快手极速版到菜单栏找
  • Windows下PP-Tracking多目标跟踪数据训练

    PP Tracking之手把手玩转多目标跟踪 飞桨AI Studio 人工智能学习与实训社区PP Tracking之手把手玩转多目标跟踪 飞桨AI Studio 人工智能学习与实训社区https aistudio baidu com ais
  • IDEA2023.1.3自带插件禁用,减少内存占用

    前言 前两个星期安装了idea2023 1 3 之前用的一直是idea2020 3版本 我发现新版界面确实更好看一些 而且启动速度也非常快 打开多个项目也一样很快 都是秒开 但是吧 它的内存占用比idea2020 3版高了很多 刚打开的时候
  • TensorRT Samples: GoogleNet

    关于TensorRT的介绍可以参考 http blog csdn net fengbingchun article details 78469551 以下是参考TensorRT 2 1 2中的sampleGoogleNet cpp文件改写的
  • 【前端面经】instanceof相关知识

    原理 instanceof是javascript语言中的一个运算符 用于检测一个对象是否是一个类或者构造函数的实例 它的语法是boject instanceof constructor 其中object是要检测的对象 constructor