我对浏览器认为“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()