@Serif

Как импортнуть/экспортнуть класс экстендящий родителя в другом файле (mjs)?

Есть примерно такая структура:

// index.html
<head>
    <script type='module'>
        import Class_A from './class_a.mjs'
        const awesomeA = new class_A();
    </script>
</head>

// class_a.mjs
import Class_B from './class_b.mjs';
    
export default class Class_A {
    constructor() {
        //...
    }
    	
    metod_to_inherit(){}	
    some_methodOfA(){
        new Class_B()
    }
}

// class_b.mjs
import Class_A form './class_a.mjs';
    
export default class Class_B extends Class_A {
    constructor(){
        super()
        //...
        this.metod_to_inherit(); // taken from A
    }
}


На данный момент, файл class_b.mjs спавнит Uncaught ReferenceError: Cannot access 'Class_A' before initialization. Само собой, если отключить импорт файле class_b.mjs, будет Uncaught ReferenceError: Class_A is not defined..

Все работает нормально только если код class_b.mjs находится в том же файле где и Class_A. Но это не решение... Подскажите, где не прав.
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
Robur
@Robur
Знаю больше чем это необходимо
У вас циклическая зависимость ненужная.
вот это
some_methodOfA(){
        new Class_B()
    }


не должно быть в A - выносите куда-нибудь, фабрику сделайте или еще что.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы