请问关于回调函数的疑问
请问老师看了上一节内容,突然对回调函数有了疑问?
请问下如果函数的参数中存在函数,如果在主函数中并没有调用callback那么这个回调函数是否会自动执行?
如果调用他的执行顺序是什么?回调函数不是异步的对吧,调用之后主函数依然想下执行是吗?以及还是请问回调函数在主函数执行完毕是否会自动执行?
2
收起
正在回答 回答被采纳积分+1
3回答
好帮手慕糖
2018-07-22 18:13:49
你好,1、不太理解你说的自己调用时什么意思?自执行吗还是指匿名函数?如下,是匿名函数,可以结合理解下,看你说的是否是这个:
var friends = ["Mike", "Stacy", "Andy", "Rick"]; friends.forEach(function (eachName, index){ console.log(index + 1 + ". " + eachName); // 1. Mike, 2. Stacy, 3. Andy, 4. Rick });
2、上面你的例子是一个同步回调函数,函数的执行顺序依然自上而下顺序执行。所以输出了回调函数中的内容,然后输出了主函数中的内容。
祝学习愉快~
hy_wang
2018-07-21 09:28:00
请问一下老师不是说回调函数是异步的吗
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>drag</title> <style> .container { width: 200px; height: 200px; background-color: yellow; } .target { width: 100px; height: 100px; background-color: pink; } </style> </head> <body> <div id="container" class="container" ondrop="drop(event)" ondragover="dragover(event)" ondragend='dragend(event)'></div> <div id="target" class="target" draggable="true" ondragstart="dragstart(event)"></div> <script> function fn(num1,num2,callback){ var num=num1*num2; callback(num); console.log('fn运行了'); } fn(10,20,function(num){ console.log(' 这个数是:'+num) }) </script> </body> </html>
为什么是先打印num才打印fn执行了,不应该先打印fn执行了吗
好帮手慕糖
2018-07-20 19:09:39
你好,在你说的上一节中没有找到回调函数,可以具体标明下在哪一块。另:回调函数是一种被作为参数传递给另一个函数的函数,回调函数会在另一个函数内被调用(或执行)。
可以说是在执行某个函数(A函数)时,可以将另一个函数(B函数)作为实参传入,在A函数代码块执行完之后,接着在函数内调用B函数,而且A函数的执行结果,可以被B函数使用。可以结合以下小例子进行理解:
function fn(num1,num2,callback){ var num=num1*num2; callback(num); } fn(10,20,function(num){ console.log(' 这个数是:'+num) })
若能解决你的疑问,望采纳。
祝学习愉快~
组件化思想开发电商网页 18版
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星