我一直想弄清楚为什么收到另一个函数的结果后函数变量为空。
在这里我创建一个函数(loader.js):
function Loader(){
this.url = null;
this.data = null;
this.successCallback = null;
}
Loader.prototype.LoadData = function(){
postAction(this.url, this.data, this.ResultCallback);
}
Loader.prototype.ResultCallback = function(result){
在这一部分中,我获得this.successCallback的定义与函数中的其他变量相同。就像是在其他范围内一样。
if(this.successCallback){
this.successCallback(result)
};
};
在其他js部分(other.js)中初始化它之后:
loader = new Loader();
loader.url = url;
loader.data = data;
loader.successCallback = function(result) { .. };
loader.LoadData();
我想做的是对所有调用使用一种ajax方法,在该方法中处理服务器端逻辑,如果成功,则可以继续并返回结果。
postAction(global.js):
function postAction(url, data, successCallback){
$.ajax({
type: 'POST'
url: url,
data: data,
success: function(result){
if(successCallback){
successCallback(result);
};
});
};