Вы пытаетесь вызвать функцию из другого модуля (каждый файл в Node - это собственный модуль, который отличается от типичной среды JS) без предварительного импорта модуля.
Недостаточно просто написать функцию в модуле main.js:
function mainTestFileOpen() {
console.log('File open test function in main.js');
}
И ожидайте вызвать его из модуля MainMenu.js. Сначала вы должны export
это:
export function mainTestFileOpen() { ... }
Затем в MainMenu.js вы можете импортировать его вверху:
import { mainTestFileOpen } from "../main";
То же самое с windowManager
. Не похоже, что вы что-то делаете с WindowManager
из main.js, поэтому просто перенесите импорт и создание экземпляров в MainMenu.js:
import { WindowManager } from "./WindowManager";
let windowManager = new WindowManager();
И тогда вы сможете сделать:
windowManager.doFileOpen();
Примечание:
Вы делаете такие вещи в конструкторе: this.doFileOpen = this.doFileOpen.bind(this);
В этом нет необходимости, поскольку единственный способ вызвать doFileOpen
- это вызвать его на экземпляре windowManager
следующим образом: windowManager.doFileOpen(...)
.
То же самое относится к:
this.init = this.init.bind(this);
this.getTemplate = this.getTemplate.bind(this);