571
社区成员
发帖
与我相关
我的任务
分享回调函数是一个函数,这个函数将会在另一个函数完成执行后立即执行。回调函数是一个作为参数传给另一个函数的函数,这个回调函数会在传给的函数内部执行。这一方法可以使得函数像使用普通参数一样使用其他函数。提高了函数使用的灵活性。
function openFile(filePath,callback)
{
alert('start opening file in'+filePath);
callback();//when finished,execute callback()
}
function writeToFile()
{
alert('i'm now writing file');
}
openFile('c://test.csv',writeToFile);
2. 回调函数的专业理解
在计算机科学中,回调函数是指一段以参数的形式传递给其它代码的可执行代码。回调函数是一种软件设计上的概念,和编程语言没有关系,几乎所有的编程语言都能实现回调函数。回调函数又是异步下不可或缺的一种机制。
回调函数就是写一个函数,让预先写好的系统来调用。你调用系统的函数,是直调。让系统调用你的函数,就是回调。一般写程序是你调用系统的API,如果反过来,由程序员写一个函数,让系统调用程序员写的函数,那就是回调,那个直接被系统调用的函数就是回调函数(间接被调用的不算)。
例如,我们在一个网页有关的函数中调用外部API,我们肯定需要异步执行,然后传入回调函数,如果是同步执行,是阻塞的,我们需要等待调用API结果之后才能执行后面的函数,这样可能会造成界面加载卡顿、延时的情况发生,而使用回调函数异步执行,则不影响我们后面函数的执行,所以是非阻塞的。
3. 回调函数和其它函数的区别
首先,回调函数就是一个函数,形式上和其他函数没有半点区别。只不过这个所谓的回调函数是将要被当做参数传递给另一个函数,并被其调用(区别就在这,一般函数的形参,接收的是一个基本类型的变量,而这个函数,接收的参数居然是一个"函数",这个作为参数的函数,就叫回调函数)。
一般函数:function a(int a, String b),接收的参数是一般类型。
特殊函数:function b(function c),接收的参数是一个函数,c这个函数就叫回调函数。
本质区别就是,一般一个函数调用另一个函数,被调用的函数是出现在方法体当中,而回调函数比较特殊是出现在参数列表当中。也就是说,调用的时候,需要从其他地方拿到这个(回调)函数,以参数的形式把这个回调函数传入。
一般的函数调用,可以称作是调用。然而另一种,执行时才将某个函数传入后再调用,就叫"回调"。
作者:109