【发布时间】:2016-05-10 17:12:49
【问题描述】:
class Overflow {}
class Stack extends Overflow {
constructor() {
super();
}
}
let stack = new Stack();
https://plnkr.co/edit/JqRfuDAav9opvapwCGpT?p=preview
如果我使用construtor(),我必须调用 super() 总是。
为什么super() auto 不在构造函数中调用?
编辑:super() 在这里调用基础constructor AND 设置原型吗?似乎错了。
编辑:为什么需要super()?即使我无意调用基本构造函数。
【问题讨论】:
-
“为什么
super()auto 不在构造函数中调用?” 应该将哪些参数传递给它?没有,全部还是一部分?任何决定都可能引发讨论为什么选择这种方法而不是另一种方法...... -
总是需要调用
super()。尝试在没有super()的情况下编写有效的 ES6 构造函数。 -
我知道...我不明白你想用你的评论告诉我什么。
-
“为什么需要
super()?即使我不打算调用基本构造函数。”因为this需要正确初始化(即对象调用构造函数生成的需要正确构造)。这主要是扩展外来对象/类的问题,例如Array。