You can define animateas follows:
animate: ->
callback = (=> @animate())
requestAnimationFrame(callback, 1000 )
console.log('foo = ', @foo)
, . @animate , (=> @animate()) .
, UnderscoreJS :
animate: ->
callback = _.bind(@animate, @)
requestAnimationFrame(callback, 1000 )
console.log('foo = ', @foo)
JavaScript, :
animate: ->
callback = @animate.bind(@)
requestAnimationFrame(callback, 1000 )
console.log('foo = ', @foo)