2012-08-04 55 views
0

我希望有人能为我解释这一点。 我有一个嵌入AJAX调用一个函数的调用:需要Javascript回调ajax解释

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

和getstuff成功的功能如下:

success: cb 

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

success(data, textStatus, jqXHR) 

说他们应该。 但我真的不知道out1和out2是如何知道它们被设置的。函数如何知道1是数据而out2是textStatus(当它们是输入参数时)? 我很好的解释会有很长的路要走。 感谢

+0

你能提供更多的代码吗? – phant0m 2012-08-04 15:37:24

回答

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