Index.html
Code: Select all
Content
Code: Select all
class MyClass {
constructor(element)
{
this.component = element;
}
hideElement()
{
this.component.classList.add('hidden');
}
}
let myDiv = new MyClass(document.getElementById("myDomObject");
class MySecondClass {
constructor(element)
{
this.component = element;
this.addClickEvent(some_button);
}
addClickEvent(element)
{
element.addEventListener('click', function()
{
document.getElementById("myDomObject").classList.add('hidden');
}
}
}
let myButton = new MySecondClass('some-button');
< /code>
Es fühlt sich nicht richtig an, die gleiche Methode in jedem meiner Klassen immer wieder neu zu erstellen, nur um die Methode der ursprünglichen Klasse zu replizieren. Das ist nicht sehr trocken. Ich möchte die Methode "Hide" dieser ursprünglichen Klasse < /p>
Ich habe dies wie unten versucht. PrettyPrint-Override ">class MySecondClass {
constructor(element)
{
this.component = element;
this.addClickEvent(some_button);
this.domObject = new MyClass(document.getElementById("myDomObject");
}
addClickEvent(element)
{
element.addEventListener('click', function()
{
this.domObject.hide();
}
}
}
< /code>
Dies instanziiert offensichtlich mehrere Instanzen der Hauptklasse. Wenn ich zehn andere Klassen habe, werde ich diese zehn Klassen und dann zehn Fälle der Hauptklasse anrufen. Ereignishörer werden zehnmal zum DOM -Objekt usw. hinzugefügt.>