我希望有人能为我解释一下。我调用了一个带有嵌入式ajax调用的函数:
getstuff(indata, function (out1,out2) {
aaa= out1;
bbb=out2;
})
getstuff中的成功函数如下所示:
success: cb
当我们完成时,"aaa"是用数据填充的,"bbb"是"成功",这就是
success(data, textStatus, jqXHR)
说他们应该这样做。但我真的不确定out1和out2是怎么知道他们已经确定的。当这些是输入参数时,函数如何知道out 1是数据,out 2是文本状态?我好好解释会有很大帮助的。感谢
这些值在$.ajax
内部传递给回调。这正是你已经发布的方式,在里面的某个地方,回调被称为success(data, textStatus, jqXHR)
。CCD_ 3、CCD_ 4和CCD_。
您可以为参数指定任何名称。函数知道out1
是data
,因为它是传递给函数的第一个参数,所以它将名称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);
你想知道为什么out1
是1
而out2
是2
吗?