Показать сообщение отдельно
  #5 (permalink)  
Старый 20.12.2018, 14:07
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

Можно сделать как-то так (я в js не особо умею)
class Button {
    getDOMInstance() {
        if (!!this.DOMInstance)
            return this.DOMInstance;

        this.DOMInstance = document.createElement('button');
        this.__setListeners();

        return this.DOMInstance;
    }

    renred() {
        document.body.appendChild(
            this.getDOMInstance()
        );
    }

    __setListeners() {
        document.addEventListener('some-event', this.__someEventListener);
    }

    __someEventListener(e) {
        alert(`${e.type} was triggered`);
    }

    __removeListners() {
        document.removeEventListener('some-event', this.__someEventListener);
    }
}

class LanguageSwitcher {
    __onChange() {
        document.dispatchEvent(new CustomEvent('some-event'))
    }
}
Ответить с цитированием