javascript - ES6, 规定子类继承父类, 写constructor 时, 必须要调用super, 这样有没有可能带来副作用 ?
伊谢尔伦
伊谢尔伦 2017-04-11 12:12:34
[JavaScript讨论组]

实际现象

  • 强制: 必须调用super ,获得this

预期现象

  • 带来的副作用 ? ( 其他OO语言没有这样的规定吧 ? )

  • 有哪些不便 ?

上下文环境

  • 产品版本:

  • 操作系统:

  • ES: ES >= 6

尝试解决 & 我的理解

  • 相关原理, 已经搜索过, 已经理解这个原理, 故不纠结原理

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
天蓬老师
class Father {
    constructor(name) {
        this.name = name;
    }
    sayName() {
        console.log(this.name);
    }
}
class Son extends Father {
    constructor(name) {
        super(name);
    }
}
var bigSon = new Son('大头儿子');
bigSon.sayName();

// 如上super是调用父类的构造函数
// 如果不调用父类的构造函数,在调用父类的一些方法时可能出现错误。
// 再来是题主说的副作用,字段不能重复应该算一个吧,在不了解父类字段的情况下,子类定义的字段与父类冲突。
// 但是这个问题属于认为可控的。以上是我一个入门程序员所理解的,比较浅显。
PHP中文网

其他语言(如JAVA)也是要在子类初始化时首先调用父类构造方法的, 只是如果父类有无参构造函数时可以省略罢了.
面向对象的思想本身就要求在子类初始化时先初始化父类.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号