在每个函数之间传递参数

时间:2014-02-25 11:43:43

标签: jquery oop

我正在尝试使代码可重用,这是我在对象学习oop中练习包装代码,如何将数据response传递给handleErros()但是我得到console.log响应未定义?任何建议如何解决?

Core.init();

var Core = function() {

    handleErrors = function(response) {
        var Errors = response.Errors;
        // console.log('length'+Errors.length);

        var i;
        for (i = 0; i < Errors.length; ++i) {
            var Error = '<div>'+Errors[i]+'</div>';
            $('.ajax-error-panel').append(Error);
        }
        $('.ajax-error-panel').show();
    };

    ajaxpost = function() {
       ... ajax...
       .done(function(response){
            handleErrors(response);
        });
    };

    ...

    return {
        handleErrors(response);
        ajaxpost();
    }

}();

1 个答案:

答案 0 :(得分:1)

改变这个:

return {
    handleErrors(response);
    ajaxpost();
}

到此:

return {
    ajaxpost();
}

因为ajax是异步的,当时,当你返回handleErrors(response);时,响应是未定义的,因为它没有任何东西。