大厂面试经典问题:什么是继承 ?JavaScrpt中如何通过原型链实现继承 ?

有同学提问,能不能讲讲继承,这一篇笔记就来深入说说继承相关的内容,包含了什么是继承,JavaScript如何实现继承,通过原型链实现继承。
什么是继承 ?JavaScript中如何通过原型链实现继承 ?

以下我们先使用UML类图来表示类的属性和方法,用以举例说明

UML(统一建模语言)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。

UML是面向对象设计的建模工具,独立于任何具体程序设计语言。

以下两个无关的类:我们发现,People类 和 Car类 没有任何

 

 

 

People类和Student类的关系:我们发现,Student是一种 People

 

  • People类拥有的属性和方法Student类都有,Student类还扩展了一些属性和方法

  • Student “是一种” People,两类之间是 “is a kind of ”关系

  • 这就是继承关系:Student 类继承自People类

 

1、什么是继承

继承描述了两个类之间的 “ is a kind of ” 关系比如:学生“是一种”人,所以人类和学生类之间就构成继承关系People是 "父类"(或 "超类"、”基类“)Student是 ”子类“(或 ”派生类“)子类丰富了父类,让类描述得更具体、更细化。


在UML图示中使用白色的空心箭头来表示类和类之间的继承关系箭头的方向是由子类指向父类这样的表达方式就是继承

更多的继承关系举例

父类子类
People Student、Teacher
Vehicle Car、Truck、Motorcycle
Appliance Television、Refrigerator
Publication Book、Magazine

 

JavaScript中如何实现继承?

  • 实现继承的关键在于:子类必须拥有父类的全部属性和方法,同时子类还应该能定义自己特有的属性和方法

  • 使用JavaScript特有的原型链特性来实现继承,是普遍的做法

  • 在今后学习ES6时,将介绍新的实现继承的方法

 

通过原型链实现继承

 

 

 

 

 当然还有在ES6中如何实现继承,后续有需求了再分享 !大家也可以踊跃提问哈 ,一起加油 ^_^我们学的不仅是技术,更是梦想 !因为爱,所以认真 。如有相关前端方面的技术问题 ,欢迎主页添加我,我会定期在群里给大家分享最新技术和解答问题 。

posted @ 2022-03-31 21:54  艾编程前端技术  阅读(53)  评论(0编辑  收藏  举报
友情链接: arry老师博客 艾编程教育 艾编程教育 关于我们 web前端学习路线 vscode视频教程全集