【发布时间】:2015-09-13 01:33:05
【问题描述】:
是否可以在不调用super方法调用父类的情况下扩展ES6中的类?
编辑:这个问题可能具有误导性。这是我们必须调用super() 的标准还是我错过了什么?
例如:
class Character {
constructor(){
console.log('invoke character');
}
}
class Hero extends Character{
constructor(){
super(); // exception thrown here when not called
console.log('invoke hero');
}
}
var hero = new Hero();
当我不在派生类上调用 super() 时,我遇到了范围问题 -> this is not defined
我在 v2.3.0 中使用 iojs --harmony 运行它
【问题讨论】:
-
范围问题是什么意思?您是否遇到异常(以及在哪里)?
-
在不调用 super() 的情况下调用派生类时,我得到了预期。我编辑了我的问题以使其更清楚:)
-
你在什么环境下运行这个?
-
如果你扩展另一个类,构造函数必须首先调用 super(),你别无选择。
-
@JonathandeM。谢谢,所以这就是我猜未来应该是这样的方式吗?
标签: javascript class inheritance ecmascript-6