JavaScript学习笔记(散)——继承、构造函数super
2024-10-19 06:23:46
构造函数中的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只能在构造函数中使用。
最新文章
- C语言分割字符串
- [转]JNIEnv解析
- 第十篇 PO核心功能及流程详解
- jquery easyui easyui-treegrid 使用异步加载数据
- 【转】Xcode升到6.4插件失效,与添加插件不小心点击Skip Bundle解决办法
- zoj 1730 / poj 1455 Crazy Tea Party
- 每天一点点java---继承exception类来实现自己的异常类
- ym——android源代码大放送(实战开发必备)
- js中判断输入框是否为空(判断是一串空的字符串)
- JavaScript压缩工具JSA使用介绍
- 【repost】 JS变量重复声明以及忽略var 声明的问题及其背后的原理
- 记录自己的 django管理 开发环境 和 生产环境 配置过程
- Springboot 启动详解
- Linux并发与同步专题 (2)spinlock
- Recurrent Neural Network[Quasi RNN]
- 20165337 2017-2018-2《Java程序设计》课程总结
- ASP.NET MVC ViewBag/ViewData/TempData区别
- day_6.23py线程
- python代码自动补全配置及Django入门Demo
- Combobox绑定泛型字典时提示“复杂的 DataBinding 接受 IList 或 IListSource 作为数据源”的解决方法