Módulos ES6 y herencia
Tengo los siguientes archivos JavaScript:
src / js / classes / Lexus.js:
import {Car} from 'src/js/classes/Car';
export class Lexus extends Car {
constructor() {
super("Lexus");
}
}
src / js / classes / Mercedes.js:
import {Car} from 'src/js/classes/Car';
export class Mercedes extends Car {
constructor() {
super("Mercedes");
}
}
src / js / classes / 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();
}
}
}
y 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);
Lo interesante, si importoya sea Lexus
oMercedes
a la clase Car y llame al método de fábrica en app.js: todo funciona bien; sin embargo si importoambos Lexus
yMercedes
a la clase Car recibí un error:
La súper expresión debe ser nula o una función, no indefinida
¿Qué extraño?