<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <script> function f1(func){ //func函数作为参数传入f1函数 console.log(‘1‘); //首先进入f1函数 setTimeout(function(){ console.log(‘2‘); //继续进入setTimeout方法,继续往下走,看到了调用func函数,然后去找func函数定义的地方,跳到f2函数内 func(); console.log(‘4‘); //走完f2函数,又跳回func函数,继续走f1函数; },1000); } function f2(){ console.log(‘3‘); //跳进f2函数,继续走。走完f2函数,跳回去func函数那地方,继续走完f1函数; } f1(f2) </script> </body> </html>
打印出来的顺序是:1234;
把f2函数作为参数传入到f1函数中,也就是异步调用f2函数。可以看到,f1函数没有执行完就碰到了f2函数,执行完f2函数,再接着回去继续执行f1函数。
时间: 2024-10-03 14:05:11