Сохранение значения 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(), Если естьваниль» способ сделать это, будь моим гостем, чтобы научить меня.

Ответы на вопрос(2)

Ваш ответ на вопрос