MikeSilence
@MikeSilence
JsNinja

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

Часто встречаю когда on() или trigger() вешают на n событие и в качестве функции добавляют такую this.var.bind(this) конструкцию. Знаю какой результат я могу получить в той или иной ситуации, но не понимаю что за магию она под собой скрывает.
  • Вопрос задан
  • 2278 просмотров
Пригласить эксперта
Ответы на вопрос 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
Спасибо!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы