回调函数,这只是一个概念
在程序界中,回调的反义词是轮询
你可以把回调看做是一种通知。例如你有一个快递大概一个小时内送到,这个时候你每五分钟去问一下,这是轮询。当发送到了之后打电话通知你,这是回调。
回调函数,就是传递一个函数作为参数,给另外一个函数进行使用。当这个函数需要请求等待时,不会影响下面的函数执行。
举个例子:老师给你布置了作业(把函数作为参数传入),老师要求你回家以后做完作业(执行回调函数)。但是,我可以先吃饭,在做作业。或者最后来做作业,什么时候做由自己安排。
说白了,回调就是把一个函数交给你(另外一个函数),同时把函数的使用权也交给你,从此这个函数雨我无瓜。你什么时候用,怎么用都雨我无瓜。在java里这叫做控制反转
在js中的例子:
buttom.onclick = function(){ console.log(‘我被调用了’) }
我不知道他什么时候调用,我也不能控制他是否调用。我只是我只是定义者,我把控制权给了你,其他的都雨我无瓜。
所以,当使用例如Ajax来请求数据的时候,会有等待时间。但是,程序不会进行等待,而是执行下面的函数,继续执行。所以这就是回调函数!