首页 > 代码库 > 把一个函数作为参数传入到函数中

把一个函数作为参数传入到函数中

<!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函数。

把一个函数作为参数传入到函数中