我对浏览器认为'this'有问题。在以下示例中,调用abc上的pingMe()将等待1秒,然后浏览器会说Object DOMWindow没有方法'func'。而不是将ABC解析为类(ABC)的实例,而是解析为DOMWindow,就好像该对象没有涉及。我显然不理解setTimeout如何处理回调范围。任何建议如何使这个回调成功?Coffeescript定时器和回调上的'this'指针
class ABC
@func = null
constructor: (func) ->
@func = func
pingMe: ->
setTimeout(doPing, 1000)
doPing = ->
@func()
abc = new ABC ->
alert "HI"
abc.pingMe()
hm,将setTimeout行改为`obj = this; setTimeout(( - > obj.doPing()),1000)`doPing声明为`doPing: - >`似乎修复它。看起来CoffeeScript在这些场景中保持常规的JavaScript行为。 – Larry 2011-02-07 02:24:51