JavaScript里面没有类?那JavaScript是如何实现继承的?

发布时间:2021-07-24 23:41:50




大家都知道的,JavaScript这门语言在ES6出来之前是没有类(class)这个概念的。



所以JavaScript中的类都是通过原型链来实现的。


既然能实现类,那同样也就可以在JavaScript中实现面向对象的继承了。(喜欢看书的朋友,可以去看一下《JavaScript高级程序设计》第三版6.3小节)。






我们使用继承主要是为了能实现代码的抽象和代码的复用,在应用层实现功能的封装。






在JavaScript中,继承的实现比较复杂,坑也很多,什么属性继承啦、原型继承啦、call/aplly继承啦、原型链继承、对象继承、构造函数继承、组合继承、类继承... 十几种,看着都头晕,对于小白来说,看多了都不知道用哪个好了。






而且我每一种都细讲需要花很多时间,所以今天这里大致梳理常用的两种给大家学*,一起来看看吧!


JavaScript 中的继承并不是明确规定的,而是通过模仿实现的。






今天我们来讲两种,一个是原型链实现继承、第二个借用构造函数


先看一下父类


方式一:原型链继承

实现方式:子类的原型指向父类的实例


子类:



test:



这种方式会存在的问题:

    引用类型的对象会被子类的所有实例共享(问题1解决)无法在创建子类的实例时,给父类的构造函数传递参数(问题2解决)





方式二:借用构造函数(又称为伪造对象、经典继承)

实现方式:在子类的构造函数中利用call(或者apply)方法执行父类构造函数(问题2解决),将执行对象设为子类的this,相当于把父类构造函数中的成员拷贝了一份到子类(问题1解决)






子类



Test:



存在的问题:

    父类原型中定义的属性无法被继承






以上两种方法都是有存在问题的,所以我们现在就出现了第三种方法来实现,你知道第三种方式是怎么实现的吗?欢迎在评论区留言哦!


我们下次继续聊继承的其他方法哦!




文章推荐



重名就会被覆盖?那JavaScript中是如何实现重载的呢?




作为一名前端开发工程师,你必须掌握的WEB模板引擎:Handlebars




JavaScript:不使用 JS 匿名函数的三个理由




转行学*web前端很难,我那到底是自学还是应该去参加培训?












相关文档

  • 大学生个人事迹总结
  • 西安秦兵马俑导游词3篇
  • 减肥运动小常识100条
  • 字符设备驱动内核框架小结(一)
  • 北京市中小学学生卡管理暂行办法
  • 网上冰破自我介绍范文
  • 立体折纸爱心的方法图解超详细
  • Deepfakes简介
  • 解决公司内部pom文件不能访问外部中央仓库的问题
  • 一个Java讲师在培训过程中用到的工具【随时更新中】
  • 上网日志留存_中国移动5G上网日志留存系统最大标包结果:中兴、华为包揽
  • 我的“高子教官”作文
  • 鼓励走出失恋句子
  • 手机应用程序图标没了怎么办
  • 龙血树适合放在哪里 摆放在什么位置养好
  • golang key map 所有_golang 并发安全Map以及分段锁的实现方法
  • 小学生讲故事演讲稿素材
  • 第一章笔记要点
  • ubuntu 12.04 无法打开无线,解决办法
  • 光棍节前一天结婚怎么样
  • 女人睡觉出汗什么原因
  • 银行会计记账方法的种类
  • 2020年秋季开学高校采取错峰就餐
  • 电信爱看4g流量怎么用
  • 共青团工作个人年终总结
  • 浙江省工程项目管理承包合同范本
  • 今年的立冬时节是什么时候
  • 2020年平安夜朋友圈发什么说说适合平安夜发的俏皮说说
  • 书,我成长的伙伴
  • 生完孩子白头发怎么办?生完孩子掉头发的原因
  • 猜你喜欢

  • 鲁教版地理必修1《地球公转的地理意义》word教案
  • 算法的时间复杂度和空间复杂-简单介绍
  • 华为mate9怎么刷回官方版本
  • 论教育成就与精神生活质量的关系
  • 【申请书】大一入党5000字转正申请书范文
  • 关于优美的爱情唯美诗句鉴赏
  • 对住院使用胰岛素泵的糖尿病患者实施细化优质护理措施的效果评价
  • 读胡适的文章有感
  • 忘不了菊花飘香的季节作文800字
  • 【全国区级联考】重庆市江津区2017—2018学年七年级下学期六校联考语文试题(原卷版)
  • 安徽浩淼建筑工程有限公司(企业信用报告)- 天眼查
  • 第6章动画制作软件FlashMX
  • 语文组教研组工作计划 Microsoft Word 文档
  • 2011台湾省会计学原理考试答题技巧
  • 浙江台州亿景园艺有限公司(企业信用报告)- 天眼查
  • 留学知识-美国留学小资月生活费 精品
  • 最新-某某市殡葬改革工作意见 精品
  • 20XX年给情人的春节祝福语
  • 第二学期高一下地理期中考试卷
  • 2019届中考语文复习方案第五部分作文专题一考场作文五大夺魁技法第五节文章如何创新课件54
  • 【精品】苏科初中数学八年级上册《2.5 等腰三角形的轴对称性》教案 (9)
  • 奥巴马就美国康州校园枪击案发表演讲中英字幕及双语演讲稿
  • 早会分享:车轮与陀螺的故事
  • Java消息中间件的概述与JMS规范
  • 轻钢结构设计中几个常见错误分析
  • 苏教版小学数学四年级上册教案:第3课时_解决问题的策略练*(1)
  • gitHub 的验证邮箱问题
  • 2018-2024年中国B2B电子商务行业深度调研与市场年度调研报告(目录)
  • 物业公司经营工作总结幻灯片模板
  • 管理培训需求调研问卷
  • 电脑怎个屏都锁住了怎么办
  • 工业暖风机的结构特征
  • ZLG致远电子E8000电能质量装置快速入门指南
  • 黔西南州中小校园文化建设评估方案
  • 第4章 影响消费者购买行为的群体因素
  • 年度教师个人的工作计划范文
  • 2020年央视元宵晚会取消了吗央视元宵晚会主持人嘉宾2020年
  • 新乡市恒阳教育咨询有限公司企业信用报告-天眼查
  • 地佐辛复合丙泊酚在无痛肠镜检查中的应用效果
  • 福建省地方税务局关于物业管理企业取得的收入征收营业税问题的补充通知
  • 辽宁盛天人防工程有限公司企业信用报告-天眼查
  • 新鲜出炉-2014世界杯CCTV直播表
  • 电脑版