在上一篇文章中,主要学习了JavaScript中的对象以及构造函数的说明和使用,这一篇文章我们主要学习JavaScript的“继承”。关于继承这个特性,JavaScript并不像Java一样有严格的说明,因为在Java中继承是实现拓展父类的功能,将公共的代码进行封装。在上一篇文章也简单提到了“继承”,那么这篇文章就着重描写JavaScript中关于继承的几种实现形式。
首先复习回忆下在上一篇文章,关于继承在JavaScript中的写法:
首先我们定义了一个cook的对象,这个cook对象里面有姓名字段,也有run函数,接着我们在定义了一个 jack,其中,这个jack 里面仅有一个姓名字段,但是我们希望这个对象可以“继承”cook对象,来使用它的run函数,这个时候,我们可以使用 __proto__ 关键字去实现,这个关键字简单理解就是extends,然后,我们在调用jack对象里面的 run函数。最后通过日志打印的结果可以显示,jack对象成功的使用了cook对象内的run函数。
第二种继承方式是,可以使用Object.create()函数,其中这个括号里面的是我们想要继承的对象:
效果如下图
从ES6开始正式,新的关键字class被引入到JavaScript中。class的目的就是让定义类更简单。上篇文章写构造函数的时候,我们知道通过构造函数也可以实现new对象。先复习下构造函数的写法:
如果用新的class关键字来编写这里的newObj,可以这样写:
好了,这里对构造函数提供了一种新的使用方式。可能你会问,我们为什么要使用class关键字,因为使用了class关键字的“对象”,我们就可以使用JavaScript的extends关键字了,这个关键字就是继承的意思。继承的写法跟java有点类似,写法如下面的蓝色矩形:
其中,蓝色矩形内的super方法是这个需要调用父类的构造方法。因此,这样通过extends可以快速完成继承这一特性。
本篇文章主要学习的是关于对象的继承三种实现形式说明和使用。本章的基本内容就结束了。
未完待续。。。
如果这篇文章对你有帮助,希望各位看官留下宝贵的star,谢谢。
Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果。