我对浏览器认为“this”的内容有疑问。在以下示例中,在 abc 上调用 pingMe() 将等待 1 秒,然后浏览器会说 Object DOMWindow has no method 'func'。它没有将“this”解析为类 ABC (abc) 的实例,而是解析为 DOMWindow,就好像没有涉及该对象一样。我显然不明白 setTimeout 如何在回调范围内工作。有什么建议可以让这个回调成功吗?
class ABC
  @func = null
  constructor: (func) ->
    @func = func
  pingMe: ->
    setTimeout(doPing, 1000)
  doPing = ->
    @func()
abc = new ABC ->
  alert "HI"
abc.pingMe()