브라우저가 'this'로 간주하는 것에 문제가 있습니다. 다음 예제에서 abc의 pingMe()를 호출하면 1 초가 경과 한 후 브라우저는 Object DOMWindow에 'func'메서드가 없음을 알립니다. 'this'를 ABC (abc) 클래스의 인스턴스로 해석하는 대신, 객체가 포함되지 않은 것처럼 DOMWindow로 해석됩니다. setTimeout이 콜백 범위와 관련하여 어떻게 작동하는지 명확히 이해하지 못하고 있습니다. 어떤 제안이 어떻게이 콜백을 성공시킬 수 있습니까?콜백 스크립트 타이머와 콜백시 '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