Показать сообщение отдельно
  #1 (permalink)  
Старый 11.11.2018, 23:17
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Контекст объекта внутри метода с параметром event
Подскажите в такой ситуации.
Есть объект:
const testApp = {
    
    typesAll: document.querySelectorAll('.type'),
    type: '',
    

    event: function() {
        this.typesAll.forEach( item => item.addEventListener('click', this.selectType)); // Вызов метода
    },


    selectType: function (e) {
        
        if (e.type == 'click' || (e.type == 'keypress' && (e.which === 13 || e.keyCode === 13))) {
            
            testApp.type = this.getAttribute('name'); // тут testApp заменить контекстом объекта???

        }

    }

}

Метод selectType принимает параметр event.
Внутри метода я специально оставил кусок кода чтоб показать что методу нужны event и контекст элемента по которому произошел клик, чтоб получить значение из атрибута name.

Вопрос: могу ли я в 16 строке заменить testApp контекстом объекта, чтоб не писать имя объекта? При этом мне остаются нужны event и контекст элемента по которому произошёл клик.

Вроде как можно через call и apply передать, но я не знаю как тогда правильно передать event и контекст самого элемента по которому сделан клик.

***Ага, элемент можно передать как item, сам объект как this.

Если можно всунуть всё это при вызове метода, покажите пожалуйста как правильно это делается.

Или лучше в данном случае оставить так как есть?

Последний раз редактировалось MC-XOBAHCK, 11.11.2018 в 23:37.
Ответить с цитированием