adv*_*ner 4 javascript inheritance multiple-inheritance mixins ecmascript-6
我正在尝试使用mixins来理解ES6多重继承.
我正在关注这篇文章(简单的mixins).但是当我运行代码时,我的输出是:
mainUncaught ReferenceError: this is not defined,console.log('main')再次指向我在最新版本的Chrome上运行它.这是我的代码:
const RaceDayService = superclass => class extends superclass {
constructor(){
console.log('service');
}
}
const RaceDayDB = superclass => class extends superclass {
constructor(){
console.log('db');
}
}
class RaceDayUI {
constructor(){
console.log('ui');
}
}
class RaceDay extends RaceDayDB(RaceDayService(RaceDayUI)){
constructor(options){
console.log('main');
}
}
const raceDay = new RaceDay();
Run Code Online (Sandbox Code Playgroud)
关于我做错的任何想法?
谢谢!
如果您的超类包含构造函数,则必须super()在子构造函数中调用该方法:
const RaceDayService = superclass => class extends superclass {
constructor(){
super();
console.log('service');
}
}
const RaceDayDB = superclass => class extends superclass {
constructor(){
super();
console.log('db');
}
}
class RaceDayUI {
constructor(){
console.log('ui');
}
}
class RaceDay extends RaceDayDB(RaceDayService(RaceDayUI)){
constructor(options){
super();
console.log('main');
}
}
const raceDay = new RaceDay();Run Code Online (Sandbox Code Playgroud)