构造函数中的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只能在构造函数中使用。

最新文章

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

热门文章

  1. Jenkins 远程构建任务
  2. 【收藏】15个常用的javaScript正则表达式
  3. 【2017-05-19】WebForm复合控件
  4. ES6入门2
  5. 【shell脚本实例】shell脚本统计单词频率、出现次数最多的n个单词
  6. 线程机制、CLR线程池以及应用程序域
  7. 前端技术API手册(2) -- CSS API 的实现
  8. [rctf](web)rcdn 解题分析,知识点总结
  9. source install sshpass in aix
  10. Winform调用WebKitBrowser,基于chrome内核WebKit的浏览器控件