Сохранение значения this при использовании прослушивателя событий
У меня есть следующая функция:
onDocumentKeyUp: function (e) {
if (e.keyCode === 27) {
this.deactivate();
}
}
Я хотел связать это так:
$(document).on('keyup', onDocumentKeyUp);
Однако, когда я это делаю,this
внутриonDocumentKeyUp
Функция относится к документу. Я решил это, выполнив:
var self = this;
$(document).on('keyup', function(e) { self.onDocumentKeyUp(e); });
Это работает, но что-то мне там говоритЭто более чистый способ сделать это. Было бы.call()
или же.apply()
как-то .. подать заявку здесь? Я'Я до сих пор не уверен, как именно работают эти функции.
Кроме того, я неТ обязательно нужно ограничитьсяjQuery.on()
, Если естьваниль» способ сделать это, будь моим гостем, чтобы научить меня.