wordpress网站放icp网站制作方案大全

张小明 2026/1/19 17:20:28
wordpress网站放icp,网站制作方案大全,装饰网站建设的背景,北京海淀工商局网站手写 instanceof#xff1a;从原型链里揪出 血缘关系#x1f50d; #x1f468;‍#x1f469;‍#x1f467;‍#x1f466; 一、回顾原型、原型对象和原型链 在 JavaScript 的世界里#xff0c;“原型” 这东西就像个神秘的族谱#xff0c;藏着对象们的…手写 instanceof从原型链里揪出 血缘关系 ‍‍‍一、回顾原型、原型对象和原型链在 JavaScript 的世界里“原型” 这东西就像个神秘的族谱藏着对象们的家族关系。要搞懂 instanceof得先扒开这层神秘面纱1.什么是原型先看三个 “老熟人”prototype、__proto__和constructor。prototype是构造函数的 “专属名片”。比如function Animal() {}这个 Animal 构造函数身上就挂着prototype属性指向一个原型对象相当于给未来的 “子孙后代” 准备的 基因库。__proto__则是实例对象的 “寻根指针”。当我们用new创建实例时比如const dog new Dog()dog 身上就有个__proto__偷偷指向构造函数的prototype。就像刚出生的小狗天生就知道自己的 基因来源constructor是原型对象上的 “认亲暗号”。每个原型对象都有constructor属性指向它对应的构造函数。比如Dog.prototype.constructor就指向 Dog相当于原型对象在说“我是 Dog 家的基因库”2.核心关联规则 —— 原型链这些小家伙们串起来就形成了原型链。看下面的代码javascriptconst arr []; console.log(arr.__proto__ Array.prototype); // arr.__proto__指向Array.prototype console.log(arr.__proto__.__proto__ Object.prototype); // true console.log(arr.__proto__.__proto__.__proto__); // null数组 arr 的__proto__指向 Array 的原型Array 原型的__proto__又指向 Object 的原型Object 原型的__proto__是 null—— 这就是一条完整的原型链像链条一样一环扣一环直到尽头。二、instanceof 介绍1.instanceof 是什么instanceof就像 JavaScript 里的 “亲子鉴定师”专门判断一个对象是不是某个构造函数的 “后代”包括直接后代和间接后代。看下面的代码javascriptPerson.prototype new Animal(); const p new Person(); console.log(p instanceof Person); // true console.log(p instanceof Animal); // truep 是 Person 的直接实例同时也是 Animal 的间接实例因为 Person 继承了 Animal所以两次判断都是 true。2.instanceof 有什么作用它的核心作用是检测对象的原型链判断左边的对象实例的原型链上是否存在右边构造函数的prototype。简单说就是“你家族谱里有没有这个老祖宗”3.基于什么需求创造的 instanceof在大型项目里多人协作时经常会遇到 “这对象到底是谁家的” 的灵魂拷问。比如你拿到一个dog对象想知道它能不能调用Animal的方法这时instanceof就能告诉你“它是 Animal 家的后代能调用” 就像团队协作时先搞清楚每个人的 “所属部门”才好分配任务呀三、手写 instanceof明白了原理咱们也来当回 “亲子鉴定师”手写一个instanceof1.手写代码展示废话不多说直接上代码:javascriptfunction insInstanceOf(left, right) { // 拿实例的__proto__当起点 let proto left.__proto__; // 顺着原型链一路找 while(proto) { // 找到构造函数的prototype就认亲成功 if(proto right.prototype) { return true; } // 没找到就继续往上爬 proto proto.__proto__; } // 爬到顶了还没找到就是外人 return false; }验证一下我们手搓的instanceof有没有bugjavascriptfunction Animal() {} function Cat() {} Cat.prototype new Animal(); function Dog() {} Dog.prototype new Animal(); const dog new Dog(); console.log(insInstanceOf(dog,Dog)); // true直接后代 console.log(insInstanceOf(dog,Animal)); // true间接后代 console.log(insInstanceOf(dog,Object)); // true所有对象都继承Object console.log(insInstanceOf(dog,Cat)); // false猫和狗不是一家结果和原生instanceof一模一样说明咱们的 “亲子鉴定师” 很称职2.手写代码的详细解释起点设置let proto left.__proto__—— 从实例的原型指针开始找就像查族谱从 “本人” 开始翻。循环遍历while(proto)—— 只要还没到原型链尽头proto 不为 null就继续找。核心判断if(proto right.prototype)—— 如果当前原型就是构造函数的原型说明是 “自家人”返回 true。继续向上proto proto.__proto__—— 没找到就往上翻一代相当于 “查爸爸的爸爸”。终点处理循环结束还没找到返回 false——“查遍了族谱确实没这号亲戚”。这里有个小细节为什么用let声明proto而不是const因为proto需要不断更新往上爬原型链const声明的变量不能重新赋值呀四、面试官会问instanceof 和 typeof 有啥区别typeof 是 “粗略分类”比如typeof []返回 “object”啥也分不清而 instanceof 是 “精细认亲”能准确判断[] instanceof Array为 true。null 和 undefined 用 instanceof 会怎样会返回 false因为它们没有__proto__原型链都不存在自然谈不上 后代手写 instanceof 时为什么要比较 prototype 而不是构造函数本身因为实例的原型链上挂的是构造函数的prototype而不是构造函数本身。比如dog.__proto__指向Dog.prototype而不是 Dog 函数原型链的终点是什么是 null就像族谱查到最早的老祖宗再往上就没人啦arr.__proto__.__proto__.__proto__返回 null。五、结语搞定instanceof的关键其实是吃透原型链这个 “家族族谱”。从prototype到__proto__从直接实例到间接继承这些概念环环相扣想要搞定这些知识点可以看看我稀土掘金社区介绍原型、原型对象和原型链的文章吃透 JS 原型从构造函数到原型链一篇讲透核心逻辑JS原型是其面向对象的灵魂以“委托”而非传统血缘实现继承以及讲解原型继承的文章原型继承不翻车一个空函数如何拯救了父子关系‍从 call/apply 的“灵魂传送”到原型链的“共享陷阱”。下次再遇到 “这对象到底啥来头” 的问题不妨心里默念“让我顺着原型链康康” 实在不行就把咱们手写的insInstanceOf掏出来保准能理清所有 血缘关系‍‍‍最后友情提示面试被问手写 instanceof 时可别光顾着写代码把原型链的原理讲清楚才是加分项哦
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站开发用的那些语言手机网站建设 的作用

从零开始点亮第一盏灯:手把手带你搞定 Arduino 开发环境搭建 你有没有过这样的经历?买回一块闪闪发光的 Arduino 开发板,插上电脑却发现它“毫无反应”——既没有提示音,也没有新设备出现。打开教程,满屏的“IDE”、“…

张小明 2026/1/17 23:01:21 网站建设

腾讯建站平台官网网站项目报价方案

BiliPlus:重塑你的B站观看体验的5大实用功能 【免费下载链接】biliplus 🧩 A Chrome/Edge extension to feel better in bilibili.com 项目地址: https://gitcode.com/gh_mirrors/bi/biliplus 还在为B站首页的杂乱推荐、干扰性热搜和有限的播放控…

张小明 2026/1/17 23:01:20 网站建设

重庆大型网站建设ip代理提取网站源码

你是否也遇到过这样的烦恼?新买的电脑用着用着就变慢了,开机要等半天,打开程序卡顿不断,桌面上还莫名其妙多了一堆用不上的预装软件。每次手动清理都要耗费大量时间,而且一不小心就可能误删重要文件。别担心&#xff0…

张小明 2026/1/17 23:01:19 网站建设

wdcp怎么上传做好的网站国外网站排名 top100

01、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 答:有黑盒和白盒两种测试种类,黑盒有等价类划分法,边界分析法,因果图法和错误猜测法。白盒有逻辑覆盖法&…

张小明 2026/1/17 23:01:19 网站建设

阿里云里面网站建设青岛西海岸新区建设局网站

作为iOS系统管理领域的重要突破,TrollInstallerX凭借其卓越的可靠性和极速安装特性,为设备越狱带来了革命性的体验。这款工具能够在最新设备上仅用数秒完成TrollStore及持久化助手的完整部署,让复杂的技术操作变得简单直观。 【免费下载链接】…

张小明 2026/1/17 23:01:20 网站建设

网站优化链接七台河网站制作

第一章:教育量子编程的课程设计在构建面向高校学生和开发者的量子编程教育体系时,课程设计需兼顾理论深度与实践能力。课程应以量子计算基础概念为起点,逐步引入量子门、叠加态、纠缠态等核心原理,并通过编程实验强化理解。课程目…

张小明 2026/1/17 23:01:23 网站建设