私は、以下のJavaScriptファイルを持っている:ES6モジュールと継承
のsrc/JS /クラス/ Lexus.js:
import {Car} from 'src/js/classes/Car';
export class Lexus extends Car {
constructor() {
super("Lexus");
}
}
のsrc/JS /クラス/ Mercedes.js:
import {Car} from 'src/js/classes/Car';
export class Mercedes extends Car {
constructor() {
super("Mercedes");
}
}
のsrc/JS /クラス/ Car.js:
import {Lexus} from 'src/js/classes/Lexus'; //either of those imports works, but not both!
import {Mercedes} from 'src/js/classes/Mercedes'; //either of those imports works, but not both!
export class Car {
constructor(make) {
this.make = make;
}
static factory(msg) {
switch(msg) {
case "Lexus":
return new Lexus();
case "Mercedes":
return new Mercedes();
}
}
}
とapp.js:
import {Lexus} from 'src/js/classes/Lexus';
import {Mercedes} from 'src/js/classes/Mercedes';
import {Car} from 'src/js/classes/Car';
var car = Car.factory("Lexus");
console.log(car);
興味深い、私は車のクラスにLexus
またはMercedes
のいずれかをインポートし、app.jsでファクトリメソッドを呼び出す場合 - すべてが正常に動作します;私は車のクラスにLexus
とMercedes
の両方をインポートする場合しかし、私はエラーを得た:
Super expression must either be null or a function, not undefined
私は何を欠場か?
LexusとMercedesをapp.jsにインポートする必要があるかどうかは、そこでは構築されていないため、わかりません。 –
エラーは、車とあなたの特定のクラスに基づいてお互いに循環依存していないと確信していますか? – Binvention
新しい文のたびに改行を入れるとどうなりますか?編集:nvmあなたが戻ってスイッチが範囲外であるように返す – xetra11