gpt4 book ai didi

ajax调用的成功函数中未设置javascript类属性

转载 作者:行者123 更新时间:2023-12-01 02:05:09 25 4
gpt4 key购买 nike

抱歉重复,但我可以在其他帖子中找到任何解决方案。

我正在尝试使用对 Web 服务的 ajax 调用来填充 javascript 对象。我不明白这个逻辑以及为什么我的对象在调用后没有设置。我写了这个小例子来解释我的问题:

代码:

function Cellule(){
this.test = 0;
this.textfunction();
}

Cellule.prototype.textfunction = function(){
this.test = 1;
$.ajax({
type: "GET",
url: "BASEURL/cellules",
data: "",
success: function(msg){
console.log("success");
this.test = 2;
console.log(cellule);
}
});
};

var cellule = new Cellule();

控制台输出:

success
Cellule {test: 1}

最佳答案

this does not refer to cellule

使用.bind()contextajax 设置的参数

bind() 方法创建一个新函数,调用该函数时,会将其 this 关键字设置为提供的值

或者指定context:this将在成功处理程序中使用cellule的上下文。

试试这个:

function Cellule() {
this.test = 0;
this.textfunction();
}

Cellule.prototype.textfunction = function() {
this.test = 1;
$.ajax({
type: "GET",
url: "../slimrest/andon/cellules",
data: "",
success: function(msg) {
console.log("success");
this.test = 2;
console.log(cellule);
}.bind(this)
});
};

var cellule = new Cellule();

关于ajax调用的成功函数中未设置javascript类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35940556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com