有在CoffeeScript的下面的类:Coffescript“@”或在此函数和类
class Canvas
constructor: (finder) ->
@canvas = $(finder)
@mouse_down()
mouse_down: ->
@canvas.mousedown (e) ->
mouse_x = e.pageX - @offsetLeft
### ... ###
@redraw()
redraw: ->
### ... ###
问题是调用类对象redraw
方法在mousedown
功能。什么是最好的解决方案呢?我只找到:
mouse_down: ->
@canvas.mousedown (e) =>
mouse_x = e.pageX - @canvas[0].offsetLeft
### ... ###
@redraw()
恭喜 - 您已找到解决方案! [fat arrow](http://coffeescript.org/#fat_arrow)'=>'将函数绑定到'@'(或'this')。 –
@LinusGThiel,它是唯一的解决方案吗?它看起来不漂亮。 – tiktak
总有[Tim Toady](http://en.wikipedia.org/wiki/There's_more_than_one_way_to_do_it),但这正是'=>'的用例。什么,特别是,你不喜欢它? –