그것은 콜백 내에서 탈출 this
의 문제를 해결하는 방법입니다. 이 추가 참조가 없으면 코드는 다음과 같이 보입니다.
$.get(path, function(contents) { // or some other function with callback
//Wrong! `this` might no longer point to your object
this.done(JST[path] = tmpl);
})
불행히도! this
내부 응답 콜백이 this
외부와 동일하지 않습니다. 실제로 그것은 무엇이든간에 $.get
(콜백을 사용하여 호출)이 무엇인지에 따라 달라질 수 있습니다.
var that = this;
// ...
$.get(path, function(contents) { // or some other function with callback
// ...
that.async(JST[path] = tmpl);
})
이 패턴은 또한 합리적이고 읽을 것 : 대부분의 사람들이 같은 목적을 위해 that
라는 이름의 추가 참조를 사용합니다. 이 구문에 대한 호기심 경우
아, 그리고 :
done(JST[path] = tmpl)
이 표현으로 사용되는 과제이다. 할당의 값은 우측이므로,이 코드는 동등하다 :
JST[path] = tmpl;
done(tmpl);
그건 기본 제공 기능이 아닙니다. 일부 라이브러리/프레임 워크에서 제공해야합니다. – user123444555621