Я не совсем знаю, как это сформулировать, поэтому я просто углублюсь и попытаюсь объяснить это как можно лучше.
Я не совсем знаю, как хранить свойства класса без использования их, или что-то в этом роде.
Если у нас есть класс Сообщение , которое содержит метод с именем addMessage .
Мы хотим использовать этот метод. внутри класса под названием Волхвы c.
Как именно мы это делаем?
class Message {
constructor(messageContainer) {
this.message = messageContainer;
}
addMessage(msg) {
this.message.innerText = msg;
}
}
class Magic extends Message {
constructor(magic) {
super();
this.magic = magic;
}
something() {
this.addMessage('Some random message');
}
}
Мы делаем:
const message = new Message(document.getElementById('message-container'))
в коде, но никогда не используйте сообщение в любом месте.
Вместо этого мы используем Волхвы c примерно так:
const magic = new Magic(something)
и затем:
element.addEventListener('click', () => magic.something())
Это не работает, кажется логичным, почему это не так, потому что сообщение никогда не используется, но как мы можем использовать метод addMessage внутри Волхвы c хотя?
Я пробовал несколько вещей, но ничего не работает, кроме выполнения document.getElementById
внутри super()
, но мне кажется, что это побеждает смысл использования классов, если я не могу как-то вызвать его в коде и оставить в нем ссылку на контейнер сообщений ...
Есть идеи?