有在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),但這正是'=>'的用例。什麼,特別是,你不喜歡它? –