我是 javascript 新手,我想知道如何在 ajax 回调中访问我的类变量
success: function(data) {
var obj = jQuery.parseJSON(data);
this.baralho = obj.countBaralho;
我的类(class)
var Placar = {
descarte : 0,
jogador1: 0,
jogador2: 0,
baralho: 0,
fetchFromServer: function(){
$.ajax({
url: baseUrl+'get-placar',
success: function(data) {
var obj = jQuery.parseJSON(data);
this.baralho = obj.countBaralho;
this.descarte = obj.countDescarte;
this.jogador1 = obj.numCartas1;
this.jogador2 = obj.numCartas2;
}
});
},
update: function() {
$('#num-cartas-1').html(this.jogador1);
$('#num-cartas-2').html(this.jogador2);
$('#cartas-restantes').html(this.baralho);
$('#num-cartas-descarte').html(this.descarte);
}
}
这些值不是从服务器设置的,我该如何修复它?
最佳答案
ajax 成功函数中的 this
不是您的对象(它可能是一个 XMLHttpRequest 对象)。
我将使用构造函数而不是对象文字来创建对象,并创建一个闭包以便能够在任何上下文中访问该对象。
var Placar = new (function(){
this.descarte = 0;
this.jogador1 = 0;
this.jogador2 = 0;
this.baralho = 0;
var self = this;
this.fetchFromServer = function(){
$.ajax({
url: baseUrl+'get-placar',
success: function(data) {
var obj = jQuery.parseJSON(data);
self.baralho = obj.countBaralho;
self.descarte = obj.countDescarte;
self.jogador1 = obj.numCartas1;
self.jogador2 = obj.numCartas2;
}
});
};
this.update = function() {
$('#num-cartas-1').html(self.jogador1);
$('#num-cartas-2').html(self.jogador2);
$('#cartas-restantes').html(self.baralho);
$('#num-cartas-descarte').html(self.descarte);
};
})();
关于javascript - 如何在ajax回调中使用类变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12206325/