Как расширить класс при использовании импорта из разных файлов? - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь создать игру, в которой есть несколько подклассов, которые все импортируются из одного файла. Это работает нормально, если я пытаюсь сделать класс карты глобальным, но когда я пытаюсь сделать его подклассом, расширяя движок, он говорит, что движок еще не определен. Как мне преодолеть это?

html:

<script type="module">
    import './game.js';
</script>

game. js:

import Engine from './engine.js';
var game = new Engine();

engine. js

import Map from './map.js';
export default class Engine { }

map. js

import Engine from './engine.js';
export default class Map extends Engine { }

Ошибка:

ReferenceError: невозможно получить доступ к лексическому объявлению `Engine 'до инициализации

1 Ответ

0 голосов
/ 19 апреля 2020

Похоже, проблема в том, что вы импортируете Map. js в Engine. js и Engine. js в Map. js, так что это создает "циклическую зависимость". Кажется, это возможно, когда вы компилируете свои модули с помощью такого инструмента, как веб-пакет, но не при использовании импорта модулей из браузера.

Статья: https://medium.com/content-uneditable/circular-dependencies-in-javascript-a-k-a-coding-is-not-a-rock-paper-scissors-game-9c2a9eccd4bc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...