5

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: () ->
    @date = new Date()

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

Could someone comment on that?

1 Answer 1

9

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)
    )
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.