什么叫CallBack函数,怎么用回调函数?

JQuery众多常用方法中很经常会用到回调函数, 理解好js callback函数定义及用法,我们就可以利用callback函数帮我们做很多事情啦!

A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.

这是js对callback函数的解析,意思是:callback函数是一个以参数形式传递给另一个函数的函数,并且该函数(指callback函数)必须等另一个函数执行完才会被调用!(当被调用时,另一个函数就是callback函数的父函数)。

理解起来可能有点绕,通俗点的例子:

函数a有一个参数,这个参数是个函数b,当函数a执行完以后执行函数b。那么这个过程就叫回调。

这里必须强调的一点:函数b是你以参数形式传给函数a的,那么函数b被调用时就叫回调函数。

疑问:

函数一定要以参数形式传过去吗,直接在函数a里面调用函数b不也可以实现callback函数的功能吗?

解答:

使用函数做参数就有下面的好处:当你a(b)的时候函数b就成了回调函数,而你还可以a(c)这个时候,函数c就成了回调函数。如果你直接在函数a里调用的话,这个回调函数就被限制死了。如果你写成了function a(){...;b();}就失去了变量的灵活性。

来个最简单的示例:

<script>
        function a(callback){
            alert("主函数执行完了!");
            callback();
        }
        function b(){
            alert("回调函数b!");
        }
        function c(){
            alert("回调函数c!");
        }
        // callback函数以参数形式传递,保证变量的灵活性
        a(b);
        a(c);
</script>