Сохранение значения 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)

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