最近做研究微信小程序时,被里面的callback函数给搞蒙了,不大理解这个函数的用法,于是百度了一下。

回调函数是一段可执行的代码段,它作为一个参数传递给其他的代码,其作用是在需要的时候方便调用这段(回调函数)代码。(作为参数传递到另外一个函数中,这个作为参数的函数就是回调函数)

回调函数callback的理解

理解:函数可以作为一个参数传递到另外一个函数中。可以是用callback来回调,也可以是匿名回调。

 
<script>
    function add(num1, num2, callback) {
        var sum = num1 + num2;
        callback(sum);
    }
    function print(num) {
        console.log(num);
    }
    add(1, 2, print); //3
</script>

分析:add(1, 2, print);中,函数print作为一个参数传入到add函数中,但并不是马上起作用,而是var sum = num1 + num2;运行完之后需要打印输出sum的时候才会调用这个函数。(这个作为参数传递到另外一个函数中,这个作为参数的函数就是回调函数.

匿名回调函数

<script>
    function add(num1, num2, callback) {
        var sum = num1 + num2;
        callback(sum);
    }
    add(1, 2, function (sum) {
        console.log(sum); //=>3
    });
</script>

在执行回调函数前最好确认其是一个函数。

<script>
    function add(num1, num2, callback) {
       var sum = num1 + num2;
       //判定callback接收到的数据是一个函数
       if (typeof callback === 'function') {
          //callback是一个函数,才能当回调函数使用
          callback(sum);
       }
    }
</script>

常见的回调函数

1、dom事件回调函数(如点击按钮事件的函数)

//click方法中是一个函数而不是一个变量
$("#btn").click(function() {
    alert("我是回调函数");
});  
//或者
function click() { 
    alert("我是回调函数");
}

2、定时器回调函数(如上)

3、ajax请求回调函数

4、生命周期回调函数