函数这章,回调函数不讲解一下吗?
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var a = 0 function bb(x) { console.log(x) } function timer(time) { setTimeout(function () { a=6 }, time); } console.log(a) timer(3000) bb(a) </script> </body> </html>
网上看到的一个问题,上面按逻辑上来说应该是输出0和6,但实际上却输出是0和0;
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var a = 0 function bb(x) { console.log(x) } function timer(time, callback) { setTimeout(function () { a = 6 callback(a); }, time); } //调用: console.log(a) timer(3000,bb) </script> </body> </html>
加了callback这个关键字后就正常输出0和6了
之前看老师的一个解释,但还是不太懂
1
收起
正在回答
2回答
同学,你好。回调函数就是一个参数,将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。这个过程就叫做回调。
以下是老师给同学写的一个回调函数的例子:
上面的代码中,我们先定义了主函数和回调函数,然后再去调用主函数,将回调函数传进去。
定义主函数的时候,我们让代码先去执行callback()回调函数,但输出结果却是后输出回调函数的内容。这就说明了主函数不用等待回调函数执行完,可以接着执行自己的代码。所以一般回调函数都用在耗时操作上面。比如ajax请求等。
祝学习愉快!
组件化思想开发电商网页 18版
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星