gpt4 book ai didi

javascript - 从 jQuery 中的 ajax.success 调用对象的方法时出现问题

转载 作者:行者123 更新时间:2023-11-30 18:58:51 25 4
gpt4 key购买 nike

function modifyDatabase(tabla, id, objData, callback, arrayCallback){
$.ajax({
url: 'modifyDatabase.php',
type: "POST",
dataType: "json",
data: 'tabla='+tabla+'&id='+id+strData,
success: function(data){
callback(data);
},
});
}

var obj = {
set: function (data){
alert(this.var1);
},
var1: 100
}

function modifyDatabase('', '', '', obj.set, '');

运行此程序时,我收到一条错误消息,告诉我 this.var1 未设置或未定义。如果我从其他地方(而不是从异步响应)调用该方法,它工作正常。

似乎方法“set”不在“obj”中。

这是怎么回事?

最佳答案

当您以这种方式传递对函数的引用时,它实际上并没有传递对对象的引用。一个快速的解决方法是创建一个匿名函数,通过闭包引用实际对象。这里很好地描述了为什么它不起作用:http://bitstructures.com/2007/11/javascript-method-callbacks

简而言之,你需要做的是:

function modifyDatabase('', '', '', function(){obj.set();}, '');

关于javascript - 从 jQuery 中的 ajax.success 调用对象的方法时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/718295/

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