Задать вопрос
MikeSilence
@MikeSilence
JsNinja

Что скрывает под собой this.var.bind(this)?

Часто встречаю когда on() или trigger() вешают на n событие и в качестве функции добавляют такую this.var.bind(this) конструкцию. Знаю какой результат я могу получить в той или иной ситуации, но не понимаю что за магию она под собой скрывает.
  • Вопрос задан
  • 2278 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@kzooz
Php-developer, student, good guy
По факту, bind возвращает специальную функцию, в которой уже есть ваш this, который вы передали в bind, как аргумент.
frontender.info/demystifying-this-in-javascript/#r...
Ответ написан
Комментировать
standy
@standy
метод bind()

Если вы передадите просто this.val, то в качестве контекста у нее будет глобальный объект (window в браузере). Чтобы это исправить, применяют такую конструкцию
var that = this;
obj.on('...' , function(/*args*/) {
  that.var(/*args*/);
});
//либо тоже самое короче
obj.on('...', this.var.bind(this));
Ответ написан
Комментировать
MikeSilence
@MikeSilence Автор вопроса
JsNinja
Спасибо!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 11:03
5000 руб./за проект
18 дек. 2024, в 10:44
130000 руб./за проект
18 дек. 2024, в 10:02
7000 руб./за проект