javascript的原型链是如何实现继承的_与class语法有什么关系

JavaScript原型链继承本质是对象__proto__指向构造函数prototype,class仅为语法糖;访问属性时沿__proto__链向上查找直至null,最终归于Object.prototype。

javascript的原型链是如何实现继承的_与class语法有什么关系

JavaScript 的原型链继承,本质是通过对象的 __proto__(隐式原型)指向其构造函数的 prototype(显式原型),从而让实例能访问构造函数原型上的属性和方法。而 class 语法只是对这套原型机制的语法糖——它不改变底层逻辑,只是让继承写法更接近传统面向对象语言。

原型链继承的核心机制

每个函数都有 prototype 属性(对象),每个对象都有 __proto__ 属性(指向其构造函数的 prototype)。当访问一个对象的属性时,JS 引擎会沿 __proto__ 链向上查找,直到找到该属性或到达 null(即 Object.prototype.__proto__ === null)。

构造函数的 prototype 是实例对象的原型(__proto__ 指向它) 子构造函数的 prototype.__proto__ 可以指向父构造函数的 prototype,形成继承链 常用实现方式包括:Object.setPrototypeOf(Child.prototype, Parent.prototype)Child.prototype = Object.create(Parent.prototype)

class 语法背后的原型操作

class 并不是新机制,编译后仍是基于原型的函数和赋值操作。例如:

class Animal { constructor(name) { this.name = name; } speak() { console.log(this.name + ' makes a noise'); } }
class Dog extends Animal { constructor(name, breed) { super(name); this.breed = breed; } bark() { console.log(this.name + ' barks'); } }

立即学习“Java免费学习笔记(深入)”;

这段代码等价于手动设置原型链 + 调用父类构造器:
Dog.prototype.__proto__ 指向 Animal.prototype
extends 触发了 Object.setPrototypeOf(Dog, Animal)(实现静态方法继承)
super() 在内部调用的是 Animal.call(this, ...)

关键区别与注意事项

class 必须用 new 调用,而普通函数可直接调用;这是语法强制,不是原型限制 class 声明不会被提升(hoisting),函数声明会;这影响调用顺序,但不影响原型链结构 所有 class 方法都不可枚举(enumerable: false),而手动挂到 prototype 上的函数默认可枚举 箭头函数没有 prototype,不能用作构造函数,也不参与原型链继承

继承链的终点与内置关系

无论用函数还是 class,最终原型链都会归于 Object.prototype,再往上是 null。例如:
new Dog().__proto__ === Dog.prototype
Dog.prototype.__proto__ === Animal.prototype
Animal.prototype.__proto__ === Object.prototype
Object.prototype.__proto__ === null

这也解释了为什么所有对象都能调用 .toString().hasOwnProperty() 等方法——它们定义在 Object.prototype 上,被整个链共享。

以上就是javascript的原型链是如何实现继承的_与class语法有什么关系的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1544062.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
javascript如何实现继承_es6的class语法糖背后是什么
上一篇 2025年12月21日 15:35:29
javascript管道是什么_如何用管道操作符处理数据流
下一篇 2025年12月21日 15:35:48

相关推荐

  • 为什么iPhone7Plus系统升级后屏幕无响应如何强制重启?按电源键和音量减键

    首先强制重启iPhone 7 Plus,同时长按音量减键和电源键约10秒直至出现苹果Logo;若无效,则充电30分钟并连接电脑使用iTunes进入恢复模式恢复系统。 如果您尝试访问某个网站,但服务器无法访问,则可能是由于服务器 IP 地址无法解析。以下是解决此问题的步骤: 本文运行环境:iPhone…

    2026年8月29日
    100
  • VSCode怎么弹出输出框_VSCode输出面板显示与隐藏管理教程

    输出面板是VSCode中用于集中查看任务、扩展、调试和Git等非交互式日志的核心工具,通过快捷键Ctrl+Shift+U快速打开,支持在不同输出通道间切换,可自定义自动弹出行为、位置及外观,与终端(交互式命令执行)和调试控制台(程序运行时交互)形成互补,提升开发效率。 在VSCode中,要弹出输出框…

    2026年8月29日
    100
  • 电脑屏幕花屏故障排查及驱动重装完整教程

    电脑屏幕花屏故障排查及驱动重装完整教程电脑屏幕花屏故障排查及驱动重装完整教程电脑屏幕花屏故障排查及驱动重装完整教程电脑屏幕花屏故障排查及驱动重装完整教程

    电脑屏幕花屏多半是显卡驱动问题,排查需从软件入手再查硬件。1.先检查显示器连接线是否松动,尝试重新插拔或更换线缆;2.进入安全模式检查是否为驱动问题,若安全模式显示正常,则重点重装显卡驱动;3.使用ddu彻底卸载旧驱动并下载官方最新版本进行干净安装;4.若软件操作无效,则可能是显卡过热、显存损坏等硬…

    2026年8月29日 用户投稿
    900
  • 美团王兴,中国具身智能第一投资人

    美团王兴,中国具身智能第一投资人美团王兴,中国具身智能第一投资人美团王兴,中国具身智能第一投资人美团王兴,中国具身智能第一投资人

    你可能没留意到,如火如荼的具身智能融资大潮里,棋局热闹,棋子如云,而低调又凶猛的棋手,却不显山不露水。 美团王兴,就是这场激战里真正的(骑手)棋手。 尽管 7 月只过去了 11 天,美团已经接连出手了 2 家具身智能公司:它石智航 & 星海图。 其中包含对星海图连续领投 2 次,又猛又狠 —…

    2026年8月29日 用户投稿
    000
  • 无线网络连接不上_WiFi无法连接怎么办解决方法

    无线网络连不上通常是因为信号问题、设备设置错误、驱动问题或网络故障,解决方法包括重启设备、检查信号、确认网络设置、更新驱动、检查mac地址过滤及重置路由器;2. wifi信号满格却无法上网可能因dns问题、ip冲突、访问限制或需认证,可尝试更换dns、释放重获ip、检查路由器设置或进行网页认证;3.…

    2026年8月29日
    000
  • 悟空浏览器优惠券膨胀了怎么办 优惠券使用异常解决方案

    优惠券显示异常多因数据同步延迟或本地缓存问题。可先尝试刷新页面、重启应用,若无效则清除缓存与数据、检查网络,核对使用规则,最后联系客服解决。 悟空浏览器优惠券显示“膨胀”或使用异常,这多半是数据同步出了点小岔子,或是本地缓存搞的鬼。说白了,就是你看到的和系统实际记录的,或者说规则校验的结果,对不上号…

    2026年8月29日
    100
  • 使用 Java 编码单词:基于字母表的字符映射教程

    本文档旨在指导开发者如何使用 Java 编程语言,根据预定义的字母表将单词编码为字符序列。我们将详细介绍实现此功能的代码,解释关键步骤,并提供示例代码,确保编码过程能够准确地保留单词的原始顺序。本教程将涵盖字符大小写处理、循环优化以及结果输出等关键方面,帮助读者掌握字符编码的核心技术。 ### 字符…

    2026年8月29日
    000
  • 百度浏览器兼容模式切换 解决网页显示问题的实用指南

    兼容模式可解决百度浏览器访问老旧网站时的显示问题,通过切换至IE内核模拟渲染。2. 网页异常多因历史遗留技术与现代标准不兼容,兼容模式用Trident内核适配旧站,极速模式用Blink内核支持现代网页。3. 布局错乱、功能失效、资源无法加载等现象提示需切换兼容模式,点击地址栏右侧IE图标选择即可。 …

    2026年8月29日
    000
  • TGS2025《如龙极3/如龙3 外传》制作人采访 外传剧情有参考OL

    TGS2025《如龙极3/如龙3 外传》制作人采访 外传剧情有参考OLTGS2025《如龙极3/如龙3 外传》制作人采访 外传剧情有参考OLTGS2025《如龙极3/如龙3 外传》制作人采访 外传剧情有参考OLTGS2025《如龙极3/如龙3 外传》制作人采访 外传剧情有参考OL

    在tgs2025前夕,世嘉如龙工作室举办发布会发表了“极”系列的第三部作品《如龙极3》,而这次最特别是在游戏内还同捆了以反派峰义孝为主角的《如龙3 外传》。这款游戏也在tgs现场提供了最速试玩,此前我们也给大家带来了实机试玩视频。 https://www.bilibili.com/video/BV1…

    2026年8月29日 用户投稿
    000
  • safari浏览器如何阻止广告重定向_safari浏览器广告重定向阻止方法

    首先启用Safari的“阻止弹出式窗口”功能,再安装Adblock Plus等广告拦截扩展并开启全局运行,接着清除历史记录与网站数据以删除潜在追踪脚本,最后可临时关闭JavaScript阻断重定向,但需注意可能影响网页功能。 如果您在浏览网页时发现 Safari 浏览器频繁跳转到广告页面,这可能是由…

    2026年8月29日
    100
  • 经纬度轮廓缩放算法中NaN值是如何产生的以及如何解决?

    经纬度轮廓缩放算法及NaN值问题详解 本文分析基于经纬度坐标的轮廓缩放算法实现中出现的NaN值问题。该算法需根据给定的经纬度点集,计算缩放后的经纬度坐标。算法流程通常为:将经纬度坐标转换为墨卡托投影坐标;基于向量运算,根据预设缩放距离和角度调整向量;最后将调整后的墨卡托坐标转换回经纬度坐标。 用户使…

    2026年8月29日
    100
  • 从零开始学习UCOSII操作系统1–UCOSII的基础知识

    大家好,我们又见面了,我是你们的朋友全栈君。 从零开始学习UCOSII操作系统1–UCOSII的基础知识 前言: 首先,比较主流的操作系统包括UCOSII、FREERTOS和LINUX等,其中UCOSII的资料相对丰富得多。 更重要的是,我目前还没有能力深入研究Linux操作系统。因此,本次学习UC…

    2026年8月29日
    100
  • GoogleBard现在叫什么_GoogleBard更名为Gemini详情介绍

    Google将Bard更名为Gemini,标志着其AI战略的全面升级。1. 品牌统一:以Gemini命名核心对话产品,消除用户对技术与产品名混淆的认知障碍;2. 技术整合:底层全面采用Gemini系列模型,从Gemini Nano、Pro到Ultra 1.0,构建覆盖全场景的AI生态;3. 多模态强…

    2026年8月29日
    200
  • thinkpad think book主要区别是什么

    ThinkPad和ThinkBook虽同为兄弟笔记本,但定位不同。ThinkPad专注高端商务,稳定可靠,追求极致性能,价格高昂,如同深度优化的算法。ThinkBook主打性价比和时尚,功能强大,易于上手,价格亲民,类似封装良好的库。选择ThinkPad还是ThinkBook取决于您的需求和预算。 …

    用户投稿 2026年8月29日
    100
  • think book thinkpad区别是啥

    ThinkBook和ThinkPad定位不同:ThinkPad主打专业商务,ThinkBook针对大众市场。具体差异体现在硬件配置(ThinkPad更高端)、做工设计(ThinkPad更坚固耐用)、软件和服务(ThinkPad更专业)。考虑预算和需求选择:ThinkPad适合对性能、稳定、安全性要求…

    2026年8月29日
    100
  • 酷睿i7和i5的区别 两者哪个好介绍

    酷睿i7和i5的区别 两者哪个好介绍酷睿i7和i5的区别 两者哪个好介绍酷睿i7和i5的区别 两者哪个好介绍酷睿i7和i5的区别 两者哪个好介绍

    电脑处理器选购时,不少用户都会在intel酷睿i5与i7之间陷入纠结。作为消费级市场中高端定位的两大主力系列,这两款处理器在性能表现、价格区间以及适用场景上各有特点。那么,i7和i5究竟有何不同?哪一款更契合你的需求?本文将从核心参数、实际表现、使用场景及性价比四个维度进行深入剖析。 一、酷睿i5与…

    2026年8月29日 用户投稿
    100
  • regard as和think of as区别是什么

    regard as 和 think of as 皆意为“视作”,区别在于视角和正式程度。regard as 较为正式,强调客观判断,常用于学术论文等。think of as 偏口语化,强调主观感受,适用于非正式对话或写作。可通过代码模拟这种视角差异,regard_as 模拟系统判断,而 think_…

    2026年8月29日
    200
  • 美团点评商家如何做小红书?

    近期合作的商家,基本是过去在美团、淘宝做得很好。但因美团点评、淘宝的流量在下降,为了生存,选择将小红书成为新销售渠道。 他们只知道,小红书用户很优质、购买力高。但真正实操的时候,发现平台规则很严,各种限流、内容创作不知道如何做,这些都让点评商家转型做小红书很难。 如何快速转型?我建议从这些方面着手。…

    2026年8月29日
    100
  • safari浏览器“个人收藏”和“书签”有什么区别_safari浏览器收藏功能详解

    个人收藏用于快速访问常用网站,显示在起始页卡片中,支持手动添加或系统推荐,数量建议少而精;书签则用于系统化保存网页链接,可分类存储于文件夹并跨设备同步,管理更灵活。两者区别主要体现在位置、数量、管理方式和同步机制:个人收藏限起始页展示,操作简便,适合高频访问;书签可通过侧边栏或多级目录管理大量链接,…

    2026年8月29日
    200
  • 如何配置Linux用户资源限制 /etc/security/limits.conf详解

    如何配置Linux用户资源限制 /etc/security/limits.conf详解如何配置Linux用户资源限制 /etc/security/limits.conf详解如何配置Linux用户资源限制 /etc/security/limits.conf详解如何配置Linux用户资源限制 /etc/security/limits.conf详解

    linux用户资源限制通过编辑/etc/security/limits.conf文件配置,其核心语法为domain type item value。1. domain指定作用对象,如用户名、@组名或*(所有用户);2. type分为soft(可临时突破)和hard(不可突破);3. item为资源类…

    2026年8月29日 用户投稿
    200

发表回复

登录后才能评论
关注微信