当前位置: 首页 > ai >正文

JS手写代码篇---手写 instanceof 方法

2、手写 instanceof 方法

instancecof用于检测一个对象是否是某个构造函数的实例。它通常用于检查对象的类型,尤其是在处理继承关系时。

eg:

     const arr = [1,2,3,4,5]console.log(arr instanceof Array); // trueconsole.log(arr instanceof Object); // true

那这是怎么实现的呢?

  • 每个对象都有一个原型,对象从其原型继承属性和方法。
  • 数组的直接原型是 Array.prototype
  • Array.prototype 的原型是 Object.prototype
  • Object.prototype 的原型是 null,表示原型链的终点。

这种原型链机制是 JavaScript 继承和原型继承的基础。通过原型链,JavaScript 实现了对象的属性和方法的继承。

我们就知道:

     console.log(arr.__proto__ === Array.prototype); // trueconsole.log(arr.__proto__=== Object.prototype); // trueconsole.log(arr.__proto__.__proto__ === Object.prototype); // trueconsole.log(arr.__proto__.__proto__.__proto__ === null); // true

这就让我想到本道题木的解题思路:

在函数当中我们输入目标和待测类型,进行循环,如果原型链上有待测类型的原型返回true,没有也就是当了原型链的终点null,返回false

我的代码:

    function getIncetanceof(target , type){// 1、target的原型链let targetProto = target.__proto__;// 2、循环判断while(true){if(targetProto === null){return false;}else if(targetProto === type.prototype){return true;}else{// 都没有的时候就要更新targetPrototargetProto = targetProto.__proto__;}}}
http://www.xdnf.cn/news/6584.html

相关文章:

  • AGI大模型(18):各大平台RAG实现之智普RAG
  • 达梦数据库多版本并发控制(MVCC)_yxy
  • 5G 技术在智能制造中的应用:加速工业革命的新引擎
  • OpenCV 背景建模详解:从原理到实战
  • BeeWare创建APK应用初体验
  • 仿生机械轮腿式车辆在丘陵和山区姿态控制的方法
  • 用整数划分整理结构
  • Linux系统篇——文件描述符FD
  • TC8:SOMEIP_ETS_029-030
  • Stainer Chain的镜像对称性的充分必要条件
  • Unity 拖尾烟尘效果及参数展示
  • qt文本边框设置
  • 解决“VMware另一个程序已锁定文件的一部分,进程无法访问“
  • 机器学习与人工智能:NLP分词与文本相似度分析
  • 反射机制详细说明
  • 2025/5/16
  • 费曼技巧及提高计划
  • Font导致内存泄漏问题排查记录
  • Android 中 打开文件选择器(ACTION_OPEN_DOCUMENT )
  • 利用边缘计算和工业计算机实现智能视频分析
  • JAVAfx项目总结 算法题
  • 《AI大模型应知应会100篇》第65篇:基于大模型的文档问答系统实现
  • Linux 系统切换国内镜像源教程
  • ChatGPT到Claude全适配:跨模型Prompt高级设计规范与迁移技巧
  • 面向SDV的在环测试深度解析——仿真中间件SIL KIT应用篇
  • 职坐标AIoT技能培训课程实战解析
  • python报错:必须实现所有abstract方法原因及解决方案
  • 如何更改远程桌面连接的默认端口?附外网访问内网计算机方法
  • 数学复习笔记 13
  • polarctf-web-[rce1]