Это происходит потому, что внутри обработчика событий keydown
значение this
не будет ссылаться на ваш объект, оно будет ссылаться на элемент DOM.
Для этой цели вы можете использовать =>
(жирная стрелка ), которая свяжет значение this
обработчика с родительским this
:
class C
constructor: () ->
@date = new Date()
f: () ->
$(document).keydown( (e) =>
alert(@date)
)