zoukankan      html  css  js  c++  java
  • js 中callback函数的定义和使用

    这是js里的解释了,其他语言的算我没说。

    字面上理解下来就是,回调就是一个函数的调用过程。那么就从理解这个调用过程开始吧。函数a有一个参数,这个参数是个函数b,当函数a执行完以后执行函数b。那么这个过程就叫回调。

    其实中文也很好理解:回调,回调,就是回头调用的意思。函数a的事先干完,回头再调用函数b。

    举个现实的例子:约会结束后你送你女朋友回家,离别时,你肯定会说:“到家了给我发条信息,我很担心你。”对不,然后你女朋友回家以后还真给你发了条信息。小伙子,你有戏了。

    其实这就是一个回调的过程。你留了个函数b(要求女朋友给你发条信息)给你女朋友,然后你女朋友回家,回家的动作是函数a。她必须先回到家以后,函数a的内容执行完了,再执行函数b,然后你就收到一条信息了。

    这里必须清楚一点:函数b是你以参数形式传给函数a的,那么函数b就叫回调函数。

     也许有人有疑问了:一定要以参数形式传过去吗,我不可以直接在函数a里面调用函数b吗?确实可以。求解中。

    <解惑:如果你直接在函数a里调用的话,那么这个回调函数就被限制死了。但是使用函数做参数就有下面的好处:当你a(b)的时候函数b就成了回调函数,而你还可以a(c)这个时候,函数c就成了回调函数。如果你写成了function a(){...;b();}就失去了变量的灵活性。>

    下面用代码来证实我的理解。

     

        <html>
         
        <head>
         
        <title>回调函数(callback)</title>
        <script language="javascript" type="text/javascript">
        function a(callback)
        {    
            alert("我是parent函数a!");
            alert("调用回调函数");
            callback();
        }
        function b(){
        alert("我是回调函数b");
         
        }
        function c(){
        alert("我是回调函数c");
         
        }
         
        function test()
        {
            a(b);
           a(c);
        }
         
        </script>
        </head>
         
        <body>
        <h1>学习js回调函数</h1>
        <button onClick=test()>click me</button>
        <p>应该能看到调用了两个回调函数</p>
        </body>
         
        </html>

     

     

    关于如何给函数b传递参数,这个以后再来写。

    原文地址  http://luxiao1223.blog.51cto.com/2369118/482885

  • 相关阅读:
    大型高性能ASP.NET系统架构设计
    读写锁ReaderWriterLockSlim
    日常生活英语单词大全
    unity3d读取plist或xml文件
    WIN7开无线
    asp.net 2.0中新增的web.config的默认namespace功能 (转)
    面向对象的一些基本概念
    大话设计模式之策略模式
    大话设计模式之简单的工厂模式
    iOS UI 之UILable
  • 原文地址:https://www.cnblogs.com/wei-dong/p/5824887.html
Copyright © 2011-2022 走看看