关于回调有什么意义

时间:2012-10-27 21:34:48

标签: javascript function callback

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

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();}

我搜索但找不到答案

2 个答案:

答案 0 :(得分:3)

如果您想对某些不能立即使用的数据执行某些操作,通常会使用回调。

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

答案 1 :(得分:2)

所以以你为例,是的,如果你想在函数i()中调用p(),你可以继续这样做。但是,如果你想要一个像p()这样的函数接受它最后调用j()而不是i()怎么办?嗯,这很容易,你传递一个函数作为p()的参数,在最后调用而不是硬编码。

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

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

此外,正如昆汀已经回答的那样,它对于异步功能特别有用。