На данный вопрос уже ответили:
Пытаюсь вызвать метод объекта из другого его метода. Все хорошо кроме такой ситуации:
a = {
fun: function() {
alert('!');
},
click: function() {
this.fun();
},
}
jQuery('span').on('click', a.click);
Если метод отвечает на событие элемента, то this внутри него будет указателем на элемент, вызвавший событие, а не на сам объект. При попытке исполнить код выдается ошибка: this.fun is not a function. Как решить проблему?
https://jsfiddle.net/2vv2rd0x/1/
Luke, use the Function#bind!
a = {
fun: function() {
alert('!');
},
click: function() {
this.fun();
},
}
jQuery('span').on('click', a.click.bind(a));
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники