super该怎样理解

super该怎样理解

es6中的super如果不传参是不是默认将下方this.x=x传入呢?即super(x)

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕夭夭 2019-12-29 13:58:58

同学你好,这是因为B中定义了一个name属性,所以它实例化后,实例化对象b自身就有了一个name属性。当b调用say方法的时候,输出的就是自身的name属性 ,所以此时就不是undefined。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

提问者 PHXL 2019-12-29 11:03:01
好帮手慕夭夭 2019-12-29 10:44:10

同学你好,理解的不对,不传递参数等于缺少了参数,它不会默认传递。super()参考如下理解:

super方法就是调用父类的constructor方法,示例:

下面B类通过super()继承了父类的构造器(constructor),所以B实例化后,实例化对象b可以调用say方法。

http://img1.sycdn.imooc.com//climg/5e08123c09a17b9507340418.jpg

注意上面super()中没有传递参数,所以输出undefined

http://img1.sycdn.imooc.com//climg/5e0812be097d8ebc02730129.jpg

当传递参数之后:

http://img1.sycdn.imooc.com//climg/5e0812dc09c2279a06130225.jpg

输出结果:

http://img1.sycdn.imooc.com//climg/5e0812ec099771d601720088.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 PHXL #1
    那么,为什么在class B中使用super();this.name = name就不是undefined呢?
    2019-12-29 11:02:17
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
热门框架Vue开发WebApp 18版
  • 参与学习           人
  • 提交作业       209    份
  • 解答问题       3299    个

本路径是通过ES6基础知识、运用Zepto、Swiper、fullPag等移动端常用工具包、以及当下流行框架Vue,结合多个实战案例,还原真实开发场景,最终实现手机端购物商城网页开发。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师