मेरे पास निम्न 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:
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();
}
}
}
और 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
मैं क्या याद करते हैं?
मुझे यकीन नहीं है कि आपको app.js में लेक्सस और मर्सिडीज आयात करने की आवश्यकता है, क्योंकि वे वहां नहीं बनाए गए हैं। –
क्या आप सुनिश्चित हैं कि त्रुटि कार से अलग नहीं है और आपके विशिष्ट बनाने वाले वर्ग एक-दूसरे पर निर्भर परिपत्र हैं? – Binvention
क्या होता है यदि आप प्रत्येक नए कथन के बाद मामलों में ब्रेक डालते हैं?संपादित करें: एनवीएम आप लौट रहे हैं इसलिए स्विच स्कोप से बाहर है – xetra11