开发者

Coffeescript/Javascript variable scope

I'm not really sure why i do not have access to the @date (this.date) variable from the context of the anonymous function defined in C.f()

class C
  constructor: () -&开发者_Python百科gt;
    @date = new Date()

  f: () ->
    $(document).keydown( (e) ->
      alert(@date)
    )

Could someone comment on that?


This is happening because inside the keydown event handler, the this value will not refer to your object, it will refer to the DOM element.

For that purpose, you can use => (the fat arrow), that will bind the handler's this value to the parent this:

class C
  constructor: () ->
    @date = new Date()

  f: () ->
    $(document).keydown( (e) =>
      alert(@date)
    )
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜