最近做研究微信小程序时,被里面的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、生命周期回调函数