JavaScript回调返回结果,但函数变量未定义

时间:2018-11-14 21:54:06

标签: javascript callback

我一直想弄清楚为什么收到另一个函数的结果后函数变量为空。

在这里我创建一个函数(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);
            };
    });
};

0 个答案:

没有答案