JavaScript学习笔记(散)——继承构造函数super

Posted 游龙翔隼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript学习笔记(散)——继承构造函数super相关的知识,希望对你有一定的参考价值。

构造函数中的super

今天看《javascript设计模式与开发实践》时,在书中看到一段代码出现super语句,第一次看到这个关键字,所以上网查了下它的作用,发现这个关键字是来自java,来源不深究,说说它的用途。super主要作用是调用父级的构造函数,但是困惑的是既然是构造函数,说明在声明的时候已经调用了,为什么会出现super来调用?自己敲了段代码加深了理解,上图:

 

这里创建了一个animal类,包含一个构造函数

  接下来创建animal的子类Dog,含有一个speak函数(用于理解继承),

    接着创建ddd类继承自Dog类,ddd中构造函数使用了super参数为 123 。

      然后实例一个Dog叫做dd

现在看看实例dd的时候会发生什么:

 

 这时候animal中的console出现了,并且打印了super的参数 123 ,ddd调用到了animal的构造函数。现在把ddd的构造函数注释掉看看效果。

现在并没有打印任何东西,不是因为animal的构造函数没被super调用,而是animal中的if判断到qqq并没有实际的值,所以没有打印,为了证实这一点,现在把animal中的if判断去掉。

现在打印了undefined,这是由于animal中构造函数参数qqq并没有实际的值传入,所以出现未定义。

现在

首先要注意的是super只能在构造函数中使用。

 

以上是关于JavaScript学习笔记(散)——继承构造函数super的主要内容,如果未能解决你的问题,请参考以下文章

《javascript高级程序设计》学习笔记 | 8.3.继承

《javascript高级程序设计》学习笔记 | 8.1.理解对象

javascript继承笔记----1024

javascript继承笔记

JavaScript原型学习笔记

《从零开始学Swift》学习笔记(Day43)——构造函数继承