私はまだjs oopで私を悩ます問題があります - 私はそれをやっていると確信していますが、私はそれを正しく行う方法を取得できません。Javascript OOP - 非同期コールバックでこれを失った
例えば、私はこのコード
Auth.prototype.auth = function() {
var request = new XMLHttpRequest();
request.open('GET', this.getAuthServerURL() + '/token', true);
request.send();
request.onloadend = function() {
var response = JSON.parse(request.responseText);
console.log(response);
if(response.result == 'found') {
var token = response.token;
this.setToken(token);
this.isSigned = true;
} else {
console.log('Not logged yet.');
}
}
}
を持っている問題は、私は「request.onloadend」機能のコンテキストからsetTokenに機能するようにアクセスカントということである - 私は「この」への参照を失ったので、そのおそらく。
この問題の解決方法を教えてください。どういうわけかこの関数のコンテキストに "this" varを渡すことはできますか?
ありがとうございます!あなただけの外側のスコープで、それへの参照をキャプチャすることができます
私はもう一方がより直接的だと思います。コードは最小限に変更され、使用する疑似キーワードを決める必要はありません。ただ言って。 – Esailija
@Esailija:私もそうですが、悲しいことに、その実用的価値はブラウザの互換性によって制約されます。 – Jon
'XHR.onloaded'との間違った点 – Esailija