JavaScript 继承使用解析

原创 年树先生 随笔 JavaScript 10493阅读 2018-12-10 21:23:51 举报

继承,通俗地说,之前你写过一些类,这些类中有一些是而你现在要写的类的功能的子集或者基本相同,那么你不用完全重新写一个新的类,你可以把之前写的类拿过来使用.这样的一种代码重用过程就叫做继承,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。

深入学习javascript继承之前,先了解下面的几个概念:

父类:被继承的类 
子类:由继承得来的类 
超类:也就是父类 
抽象类:一般不用来实例化的类,它的用途是用来给其他类继承. 
基类:提供给其他类可以继承的类 
派生类:由基类继承而来的类 

javascript对象继承通常有下面的5种方式:

  • 1.对象冒充 
  • 2.call()方式 
  • 3.apply()方式 
  • 4.原型链 
  • 5.混合方式 

A.对象冒充 
所谓对象冒充,就是新的类冒充旧的类(旧的类必须采用构造函数方式),从而达到继承目的. 

上面的例子中,people是用来做white_people的基类,记住这个格式是用来对象冒充达到继承目的的 

所有新属性和新方法都必须再删除了继承后定义,这样是为了避免覆盖父类的相关属性和方法. 
另外,对象冒充支持多继承. 

对象冒充有一个不足的地方:多继承机制实现时,如果基类存在相同的属性或者方法,将从后面的类继承. 

B.call()方式
只是封装的对象冒充的一个函数.这样,我们不再需要写"经典"的三句话,而是用下面这句话代替: 
基类.call(对象,参数列表) 

同样,call()存在同名属性和方法的小问题. 

C.apply()方式
和call()一样.apply()也是对象冒充的一个封装函数.其格式为: 
基类.apply(对象,参数数组); 

同样,apply()存在同名属性和方法的小问题. 

D.原型链 
上面三种方式都是采用构造函数方式的继承,对应地,也具有原型函数方式的继承:原型链. 

原型链也具有了原型链的缺点:不能传递参数.另外,原型链不支持多继承,因为 

E.混合方式
使用构造函数方式来写类的属性,对属性的继承采用call()或者apply() 
使用原型方式来写的方法,对方法的继承采用原型链 

结语

感谢您的观看,如有不足之处,欢迎批评指正。

本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:864305860,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复