我不确定为什么我无法访问C.f()中定义的匿名函数的上下文中的@date(this.date)变量
class C
constructor: () ->
@date = new Date()
f: () ->
$(document).keydown( (e) ->
alert(@date)
)
有人会对此发表评论吗?
答案 0 :(得分:9)
这是因为在keydown
事件处理程序中,this
值不会引用您的对象,它将引用DOM元素。
为此,您可以使用=>
(fat arrow),将处理程序的this
值绑定到父this
:
class C
constructor: () ->
@date = new Date()
f: () ->
$(document).keydown( (e) =>
alert(@date)
)