Как вызвать один метод класса JavaScript из другого классаJavascript

Форум по Javascript
Ответить
Anonymous
 Как вызвать один метод класса JavaScript из другого класса

Сообщение Anonymous »

У меня есть класс JavaScript, который каждый экземпляр прикреплен к объекту DOM. Этот класс содержит метод, чтобы скрыть объект DOM. Например,
index.html>

Код: Выделить всё

Content
main.js

Код: Выделить всё

class MyClass {
constructor(element)
{
this.component = element;
}

hideElement()
{
this.component.classList.add('hidden');
}
}

let myDiv = new MyClass(document.getElementById("myDomObject");
У меня есть ряд других классов, которые также будут скрывать один и тот же объект DOM после того, как что -то произойдет, например, нажатие кнопки или результат запроса Ajax.
main2.js
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>
Не похоже на то, чтобы воссоздать один и тот же метод снова и снова в каждом из моих классов, просто чтобы повторить метод исходного класса. Это не очень сухо. Что я хотел бы сделать, так это назвать метод «скрыть» этого исходного класса < /p>
Я попробовал это, как ниже < /p>
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>
Это, очевидно, создает несколько экземпляров основного класса. Если у меня есть десять других классов, я буду называть эти десять классов, а затем десять случаев основного класса. Слушатели событий добавляются в объект DOM в десять раз и т. Д.>

Подробнее здесь: https://stackoverflow.com/questions/794 ... ther-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»