Так получилось, что в классе мне нужно обратиться к уже существующему методу. Но я не могу этого сделать через this потому, что нахожусь в функции для обработки событий и this указывает на другое. Поэтому я присвоил метод переменной до обработчика. Проблема в том, что я не понимаю почему теперь нельзя обращаться к свойствам класса через эту переменную, хотя она является ссылкой на метод класса. Ниже прикреплю упрощенный код без обработчика, как пример,и сам проблемный код. А еще, если вы знаете как исправить ситуацию с this в обработчике, то напишите пожалуйста как.
Наглядный пример:
class Test{
constructor(a){
this.a = a;
}
sqrA(){
console.log(this.a * this.a)
}
testA(){
let f = this.sqrA;
console.log(f())
}
}
obj = new Test(5);
obj.testA();
Ошибка:
console.log(this.a * this.a)
^
TypeError: Cannot read property 'a' of undefined
Основной код:
let curr_month = this.curr_mon;
let curr_year = this.curr_year;
let newMonth = this.setNewMonth;
let baseEl = this.baseEl;
$('#next').on('click',function (e) {
curr_month++;
if(curr_month == 12){
curr_year++;
curr_month = 0;
}
newMonth(baseEl, curr_month, curr_year);
})