【发布时间】:2020-07-22 12:25:17
【问题描述】:
我不太知道如何表达,所以我会继续深入并尽可能地解释它。
我不太清楚如何在不使用它们或类似的东西的情况下存储类属性。
如果我们有一个 Message 类,其中包含一个名为 addMessage 的方法。
我们想使用这种方法。在一个名为 Magic 的类中。
我们究竟是如何做到这一点的?
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'))
在代码中,但从不在任何地方使用 message。
相反,我们像这样使用 Magic:
const magic = new Magic(something)
然后:
element.addEventListener('click', () => magic.something())
这不起作用,它为什么不起作用似乎是合乎逻辑的,因为消息永远不会被使用,但是我们如何利用 MagicaddMessage 方法/em> 但是?
我已经尝试了一些东西,但除了在super() 内执行document.getElementById 之外似乎没有任何效果,但在我看来,如果我不能以某种方式调用它,这似乎违背了使用类的意义代码并让它保留对消息容器的引用...
有什么想法吗?
【问题讨论】:
-
感谢 Alex 的帮助!
标签: javascript class inheritance subclass