Ben aşağıdaki JavaScript dosyaları:ES6 modülleri ve miras
src/js/sınıfları/Lexus.js:
import {Car} from 'src/js/classes/Car';
export class Lexus extends Car {
constructor() {
super("Lexus");
}
}
src/js/sınıfları/Mercedes.js:
import {Car} from 'src/js/classes/Car';
export class Mercedes extends Car {
constructor() {
super("Mercedes");
}
}
src/js/sınıfları/Car.js:
0.123.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();
}
}
}
ve 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);
ilginç bir şey, ben araba sınıfına yaLexus
veya Mercedes
ithalat ve app.js fabrika yöntemini çağırırsanız - her şey gayet iyi çalışıyor ; ancakLexus
ve Mercedes
bir hata aldım Araç sınıfına hem içe eğer:
Super expression must either be null or a function, not undefined
Ben neyi özlüyorsun?
Onların orada inşa değiliz beri, app.js içinde Lexus ve Mercedes ithal etmek gerekirse emin değilim. –
Hata aracın temelli olmadığından ve belirli marka sınıflarınızın dairesel olarak bağımlı olduğundan emin misiniz? – Binvention
Her yeni ifadeden sonra davalara bir mola verirseniz ne olur?Düzenleme: nvm, bu nedenle, anahtarın kapsam dışına çıktığında geri döndüğünüzde, – xetra11