我是javascript的新手,我想知道如何在我的ajax回调中访问我的类变量
success: function(data) {
var obj = jQuery.parseJSON(data);
this.baralho = obj.countBaralho;
我的班级
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);
}
}
未从服务器设置值,我该如何解决?
答案 0 :(得分:2)
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);
};
})();