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

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__;}}}

相关文章:

  • 卡尔曼滤波及变种 KF EKF ESKF的区别跟用法
  • 医学图像分析中的大规模基准测试与增强迁移学习|文献速递-深度学习医疗AI最新文献
  • Java【13_1】final、初始化块、继承(测试题)
  • 基于“岗课赛证”融通的中职“综合布线技术”课程解决方案
  • 物联网技术在银行安全用电系统中的应用与实践研究
  • 网络安全-等级保护(等保) 2-6 GB/T 36958—2018 《信息安全技术 网络安全等级保护安全管理中心技术要求》-2018-12-28 发布【现行】
  • 14 C 语言浮点类型详解:类型精度、表示形式、字面量后缀、格式化输出、容差判断、存储机制
  • 【MySQL】索引太多会怎样?
  • Qt图表绘制(QtCharts)- 性能优化(13)
  • 高速光耦在通信行业的应用(五) | 5Mbps通信光耦的特性
  • FEKO许可证与版本兼容性问题
  • PT2062单触控单输出LED调光IC
  • c++ 类的语法4
  • 1.4 查看dll的架构(X86\X64)以及X86能否在X64下运行
  • MySQL锁机制详解与加锁流程全解析
  • ubuntu22鼠键失灵恢复记录笔记chatgpt解决
  • 动态图标切换的艺术
  • C++ --- new与delete
  • [特殊字符] Maven配置阿里云镜像终极指南(2024最新版)
  • EasyExcel导出excel再转PDF转图片详解
  • 外交部亚洲司司长刘劲松会见印度驻华大使罗国栋
  • 图讯丨习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 济南市委副秘书长吕英伟已任历下区领导
  • 上海国际电影节特设“今日亚洲”单元
  • 波兰关闭俄罗斯驻克拉科夫领事馆
  • 27岁杨阳拟任苏木镇党委副职,系2020年内蒙古自治区选调生