zoukankan      html  css  js  c++  java
  • 把一个函数作为参数传入到函数中

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

    JavaScript中的“回调”机制,类似于操作系统中的“中断和响应” —— 延时程序设置一个“中断”,然后执行func(),待1000毫秒时间到后,再回调执行f1(),再进入setTimeout函数

    ()执行。 

  • 相关阅读:
    Django集成CAS
    JAVA命名规范
    Mybatis(5)——动态SQL
    Mybatis(4)——ResultMap
    Mybatis(3)——参数处理
    Mybatis(2)——Mapper映射文件
    Mybatis(1)——配置文件
    Gson(http://www.jianshu.com/p/e740196225a4)
    Gson中fromJson方法
    SessionAttributes和ModelAttribute
  • 原文地址:https://www.cnblogs.com/Jerry-spo/p/6376105.html
Copyright © 2011-2022 走看看