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?
As of today, January 2020, CoffeeScript is completely dead on the market (though the GitHub repository is still kind of alive).
Short answer: No. CoffeeScript generates javascript, so its maximum possible speed equals to the speed of javascript.
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)
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With