Tengo un problema con lo que el navegador considera 'esto'. En el siguiente ejemplo, al llamar a pingMe() en abc esperará 1 segundo y luego el navegador dirá que Object DOMWindow no tiene el método 'func'. En lugar de resolver 'this' con la instancia de la clase ABC (abc), en su lugar se resuelve en DOMWindow, como si el objeto no estuviera involucrado. Claramente no entiendo cómo funciona setTimeout con respecto al alcance de devolución de llamada. ¿Alguna sugerencia de cómo puedo hacer que esta devolución de llamada tenga éxito?Coffeescript timer y 'this' puntero en callback
class ABC
@func = null
constructor: (func) ->
@func = func
pingMe: ->
setTimeout(doPing, 1000)
doPing = ->
@func()
abc = new ABC ->
alert "HI"
abc.pingMe()
hm, cambiando la línea setTimeout a 'obj = this; setTimeout ((-> obj.doPing()), 1000) 'y la declaración doPing a' doPing: -> 'parece arreglarlo. Parece que CoffeeScript mantiene un comportamiento de JavaScript regular en estos escenarios. – Larry