아래 스 니펫과 같이 비동기 콜백 함수에서 부모 "this"를 참조하려면 어떻게해야합니까?JavaScript의 비동기 콜백 함수에서 "this"에 액세스
var imaginaryAjaxCall = function (fn) {
setInterval(fn, 1000);
}
function parent() {
this.foobar = "foo";
imaginaryAjaxCall(function() {
this.foobar = "bar";
});
}
다음은 테스트를 위해 jsfiddle의 : http://jsfiddle.net/r0ueon53/11/
편집 : 내가 질문을 돌진하고, 그것을 것이지. 이 편집과 관련없는 일부 의견을 제출해 죄송합니다.
코드에 없기 때문에 "this"가 사용 중인지 확실하지 않지만 ['bind()']에 대해 알아보십시오. (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) – epascarello
'setInterval (fn, 0)'은 시간이 0으로 설정되어 있더라도'fn'을 실행하기 전에 메인 스크립트가 끝나기를 기다린다. – JJJ
@epascarello 'this'는 여기에서 문제가되지 않습니다. 그것은'that = this'로 적절히 캐시되고 있습니다. – JJJ