需要Javascript回调ajax解释

时间:2012-08-04 15:35:49

标签: javascript ajax callback

我希望有人可以帮我解释一下。 我调用了一个带有嵌入式ajax调用的函数:

getstuff(indata, function (out1,out2) {
            aaa= out1;
            bbb=out2;
            })

并且getstuff中的成功函数如下所示:

success: cb

当我们完成“aaa”填充数据和“bbb”是“成功”,这是什么

success(data, textStatus, jqXHR)

他们应该这样说。 但是我真的不确定out1和out2是如何知道它们已被设定的。函数如何知道1是数据,out2是textStatus,当这些是输入参数时? 我很好的解释会走很长的路。 感谢

1 个答案:

答案 0 :(得分:1)

这些值在$.ajax内传递给回调。这正是你已经发布的内容,在内部,回调被称为success(data, textStatus, jqXHR)datatextStatusjqXHR只是变量。

您可以为参数指定任何名称。函数知道out1data,因为它是传递给函数的第一个参数,因此它将名称out1与之关联起来。类似于out2

这是一个非常简单的例子:

function foo(callback) {
    var someData = 'someValue';
    callback(someData);
}

foo(function(someParameterName) {
    console.log(someParameterName);
});

函数参数的名称与传递的变量名称没有任何关系,回调没有什么神奇之处,它们只是函数,它们的工作方式不同。如果你看到这个

var a = 1,
    b = 2;

function foo(out1, out2) {
    console.log(out1, out2);
}

foo(a, b);

你想知道为什么out11out22