var calendar = {
activeDates: null,
dateClicked: function () {
this.activeDates = document.querySelectorAll(
'[data-calendar-status="active"]'
)
for (var i = 0; i < this.activeDates.length; i++) {
this.activeDates[i].addEventListener('click', this.eventListener)
}
},
eventListener: function () {
this.removeSelectedClass()
this.classList.add('vcal-date--selected')
},
removeSelectedClass: function () {
// details omitted
},
dateChecked: function () {
//will call removeEventListener here
}
}
Я хочу вызвать функцию removeSelectedClass()
в обратном вызове прослушивателя событий eventListener
, и я точно знаю, что this.removeSelectedClass()
неверен, так как это this
относится к объекту контекста this.activeDates[i]
вместо calendar
. Простое решение включает создание анонимной функции для обратного вызова слушателя событий, но это невозможно в этом случае, потому что я хочу повторно использовать eventListener
в dateChecked
. Что мне делать?