Модули ES6 и наследование
У меня есть следующие файлы JavaScript:
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
к классу Car и вызову метода factory в app.js - все работает нормально; Однако, если я импортируюи то и другое Lexus
а такжеMercedes
В классе автомобилей я получил ошибку:
Супер-выражение должно быть либо нулевым, либо функцией, а не неопределенным
Что мне не хватает?