Я использую класс, который расширяет класс контейнера. Каждый экземпляр класса сам по себе является контейнером, но контейнер верхнего уровня не является экземпляром класса.
Файл 1
const Command = require('Command');
class CommandManager {
constuctor () {
this.commands = {};
}
add (object) {
const command = new Command(object);
this.commands[command.name] = command;
}
get (string) {
return this.commands[string];
}
}
Файл 2
const CommandManager = require("CommandManager");
class Command extends CommandManager {
constructor (object) {
super();
//Other-code
}
// Class Methods
}
Во время выполнения это должно выглядеть примерно так:
client.commands = new CommandManager();
client.commands.add(object); // Add function also filters down adding to sub elements
Или:
const command = client.commands.get(string);
command.add(object);
Проблема состоит в том, что хотя бы один из этих файлов заканчивается пустым объектом или не определен из требуемый класс. Мои попытки следовать другим решениям для круговой зависимости узлов не сработали (или я их неправильно понял).
Цель состоит в том, чтобы сохранить 2 класса в своих собственных файлах, и я знаю, что могу решить проблему используя тот же файл (но это было бы исключением в проекте?), и я не уверен, как я (или потребитель) мог бы go требовать его логически, поскольку они находятся в разных областях.
Так, что я могу go об этом, что мне не хватает?