0

我现在了解到回调是传递给参数的函数。但我可以不这样做有什么意义呢?例如

function i()
{
 alert("callback");
 }
function p(a)  
{
for(r=0;r<100;r++)
{document.write(r);}
a();
}
p(i);

或者

   function i()
{
alert("callback");
 }
function p()  
{
for(r=0;r<100;r++)
{document.write(r);}
i();}

我搜索但找不到答案

4

2 回答 2

3

当您想要对一些无法立即使用的数据执行某些操作时,通常会使用回调。

例如,在响应到达时处理来自 HTTP 响应的某些数据,或者根据单击鼠标按钮时发生鼠标单击的位置执行操作。

于 2012-10-27T21:37:59.550 回答
2

所以举个例子,是的,如果你想调用i()函数p(),你可以继续这样做。但是,如果您想要一个函数,就像p()它在最后调用的 acceptj()而不是i()? 好吧,这很容易,您将函数作为参数传递p()给最后调用,而不是硬编码它。

这是关于灵活性的。没有必要为了做而做,但在很多情况下它是有用的。

所以让我试着想出一个简单的例子,假设我们有一个调用函数sum(),它将数组的所有元素相加。现在让我们假设在我们的程序中的某个地方,我们不想对所有元素求和,而是对一些元素求和,也许只是超过某个值的元素,或者每个其他元素。如果我们设置 sum 以便除了要处理的数组之外,它还可以使用一个函数参数来调用filter(如果保留为 null,我们将默认对所有元素求和),我们可以使我们的sum()函数变得更多更有用,避免编写一大堆不同的求和函数。

此外,正如 Quentin 已经回答的那样,它对异步函数特别有用。

于 2012-10-27T21:41:34.773 回答