精华内容
下载资源
问答
  • JS中回调函数(callback)理解

    万次阅读 多人点赞 2018-07-24 17:46:16
    今天有个刚入行的小兄弟问到了回调函数,讲解了一番以后觉得不能白讲,得把这些东西记下来,虽然很基础。。。 介绍 首先从英文介绍开始 A callback is a function that is passed as an argument to another ...

    前言

    今天有个小兄弟问到了回调函数,讲解了一番以后觉得不能白讲,得把这些东西记下来,虽然很基础。。。

    介绍

    首先从英文介绍开始

    A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.

    这里只是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();}就失去了变量的灵活性。

    上一段代码大家可以跑一下:

    function a(callback)
    {   
        alert("我是parent函数a!");
        alert("调用回调函数");
        callback();
    }
    function b(){
    alert("我是回调函数b");
      
    }
    function c(){
    alert("我是回调函数c");
      
    }
      
    function test()
    {
        a(b);
       a(c);
    }

    根据代码示例加深理解

    问题:

    现在有函数如下定义:
    function A(a,callback){
    ....
    }
    function B(){
    ....
    }
    则可以有如下调用
    A(a,B);来实现回调。
    现在我希望传给B一个参数c,即实现类似于:  A(a,B(c)); 的效果,应该如何实现?

    function A(a,callback){ 
    var b=callback; 
    alert(a+b); 
    } 
    function B(c){ 
    return (-c); 
    } 
    A(4,B(3))

    根据jquery的ajax请求常见的场景再去写一个示例:

    我包装了jQuery的ajax方法:

    function doAjax(u,param,callback){
          $.ajax({
                type:'POST',
                url:u,
                data:param,
                success:callback
          });
    }
     
    function showAlert(data){
         alert(data);
    }
     
    

    比如这样调用 doAjax("url","id=1",showAlert);
    $.ajax 在success后,会返回一个data到showAlert中,显示出来 ,没有问题.
    可是,当我想多传一个参数给showAlert时怎么写?
    写成doAjax("server.php","id=12&type=1",showAlert("hi",data))、或者把上面的success:callback 写成success:callback(msg,data)显然都不行,如之奈何?

    其实很简单,很多方法都定义了回调函数,回调函数也是函数,就是说不管怎么传,只需要是个函数类型即可。写法如下:

    方式1,
    doAjax(参数1,参数2,function(request,opts){
             callback(request,opts,agrs);
     });
    function callback(request,opts,args){
                   
    };
    方式2,
    var args=N;
    doAjax(参数1,参数2,function(request,opts){
           var X=N;
           回调函数代码块..
           和以上几乎一样,看个人编码方式选择。     
    });

    再看一个从父函数传递给回调函数的示例

    function e(m,n,Callback){  
        var d = m+n;  
        alert("一个从父函数e 产生的参数将要被传递给回调函数 ,这个参数是:"+d);  
         
        //这里才写你想调用的函数---参数要正确  
        Callback(d);   
    }  
    function callback(data){  
            alert("我是回调函数,我的名字叫:callback ,我接收到来自父函数的参数,参数是:"+data);   
    }
    e(1,2,callback)  

    最后

    感谢各位的阅读,如有问题麻烦及时指正出来。

     

    展开全文
  • 主要介绍了JS中回调函数及用法,通过实例代码给大家详细介绍了什么是回调函数,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
  • 主要介绍了js中回调函数的相关知识,需要的朋友可以参考下
  • 下面小编就为大家带来一篇对js中回调函数的一些看法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数。  我们先来看看回调的英文定义:A callback is a function that is passed as an argument to another function and is executed after ...

    初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数。

      我们先来看看回调的英文定义:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed。

      字面上的理解,回调函数就是一个参数,将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数。这个过程就叫做回调。

      其实也很好理解对吧,回调,回调,就是回头调用的意思。主函数的事先干完,回头再调用传进来的那个函数。但是以前看过很多博客,他们总是将回调函数解释的云里雾里,很高深的样子。

      举一个别人举过的例子:约会结束后你送你女朋友回家,离别时,你肯定会说:“到家了给我发条信息,我很担心你。” 对不,然后你女朋友回家以后还真给你发了条信息。小伙子,你有戏了。其实这就是一个回调的过程。你留了个参数函数(要求女朋友给你发条信息)给你女朋友,然后你女朋友回家,回家的动作是主函数。她必须先回到家以后,主函数执行完了,再执行传进去的函数,然后你就收到一条信息了。

      现在基本理解回调函数的意思了吧。不理解的话没关系,我们用代码说话。

    //定义主函数,回调函数作为参数
    function A(callback) {
        callback();  
        console.log('我是主函数');      
    }
    
    //定义回调函数
    function B(){
        setTimeout("console.log('我是回调函数')", 3000);//模仿耗时操作  
    }
    
    //调用主函数,将函数B传进去
    A(B);
    
    //输出结果
    我是主函数
    我是回调函数

    上面的代码中,我们先定义了主函数和回调函数,然后再去调用主函数,将回调函数传进去。

      定义主函数的时候,我们让代码先去执行callback()回调函数,但输出结果却是后输出回调函数的内容。这就说明了主函数不用等待回调函数执行完,可以接着执行自己的代码。所以一般回调函数都用在耗时操作上面。比如ajax请求,比如处理文件等。


    展开全文
  • JS中回调函数的写法

    2019-04-14 20:10:03
    JS中回调函数的写法

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的。教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈~我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转到教程

                    <!DOCTYPE HTML> 
    <html>
    <head>  
    <meta charset="GBK" />
    <title>回调函数(callback)</title> 
    <script type="text/javascript" src="jquery-1.11.3.min.js"></script>
    <script language="javascript" type="text/javascript"> 
        var f;
        function d(){
            alert("我是Jquery定义的函数");
        }
        var e = function(){
            alert("我也是Jquery定义的函数");
        }
        
        function a(callback) {    
            alert("我是parent函数a!"); 
            alert("调用回调函数"); 
            //callback(); 
            $("#id").load("page参数");
            d();//起作用
            if (typeof callback === "function"){
                alert(callback);
            }
        } 

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

    浏览人工智能教程

    展开全文
  • 我这段代码的回调函数哪出错,请各位大神指教 function req(){ createRequest(); var zipcode=document.getElementById("zipcode").value; var url="b.jsp?zipcode=" + escape(zipcode); ...
  • Hi,小伙伴们,今天来和大家谈一谈有关javascript 回调的问题,首先回调函数分为两种 1、同步回调函数(普通的回调函数) 2、异步回调函数   其中同步回调函数是要等到回调函数都执行完成后才能进行接下来的操作,也...

     

    详情请查看:https://m.aliyun.com/jiaocheng/997634.html

    回调 异步 JavaScript 函数

     

    Hi,小伙伴们,今天来和大家谈一谈有关javascript 中回调的问题,首先回调函数分为两种
    1、同步回调函数(普通的回调函数)
    2、异步回调函数

     

    其中同步回调函数是要等到回调函数都执行完成后才能进行接下来的操作,也就是说是阻塞式运行。

     

    话不多说,直接上栗子

    function waitFive(callback){ 
    var currentDate = new Date(); 
    var pus = 0; 
    while(pus<5000){ 
    var date = new Date(); 
    pus = date - currentDate; 

    callback("执行完成"); 

    waitFive(function(msg){console.log(msg);}); 
    console.log("进行第二步操作;");**执行结果为:** 

    执行完成 
    进行第二步操作 
     

     

    因为是同步回调函数,所以是要先等waitFive函数执行完成后,才能执行


    console.log("进行第二步操作;"); 

     

    而异步回调函数不需要等到回调函数都执行完成后才能进行接下来的操作,也就是说是非阻塞式运行。

     

    话不多说,同样直接上栗子


    function waitFive(callback){ 
    setTimeout(function(callback){ 
    callback("执行完成");},5000); 

    waitFive(function(msg){console.log(msg);}); 
    console.log("进行第二步操作;");**执行结果为:** 
    进行第二步操作 
    执行完成

     

    因为是异步回调函数,所以是不需要先等waitFive函数执行完成后,才能执行


    console.log("进行第二步操作;"); 
    展开全文
  • javascript中回调函数非常重要,它们几乎无处不在。像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply()函数的,或者有一些简短...
  • JS中回调函数的三种写法!

    千次阅读 2019-05-25 12:12:54
    //第一种---------------------------------------- function parent(str,callback) { console.log(str); callback(); } function son() { ...//先定义一个回调函数son,再把回调函数名son传进去 parent("先执...
  • JS中回调函数(一)

    2018-11-11 14:18:07
    多用在使用 js 写组件时,尤其是组件的事件很多都需要回调函数的支持 假设 A是回调函数,B是调用者,B参数里一个是指向A的函数指针,即回调A,同时另外的参数传递给A作为参数 二.JS中函数可作为参数传递,甚至...
  • 关于JS中回调函数的三种使用方式

    千次阅读 2015-07-09 09:19:01
    关于JS中回调函数的三种使用方式
  • 代码是调用了地图api函数,里面有个回调函数,想在回调函数里把值赋给全局变量,但是回调函数之后的代码里全局变量的值没变,具体见代码: ``` <script type="text/javascript"> //基本地图加载 var map...
  • JavaScript支持函数作为参数传递,回调函数变量指向的函数对象都未与任何上下文绑定,所有未与明确上下文绑定的变量都是自由变量,浏览器所有自由变量的上下文都是window对象 !! 可以利用call()或apply()给它...
  • System.out.println("回调函数为:" + callback); %> <script type="text/javascript"> var callback = '<%=callback%>'; console.log('callback:', callback); </script> <div style=...
  • js回调函数详解

    2020-10-24 22:58:25
    本文主要介绍了个人对于javascript中回调函数的理解和使用方法及示例,需要的朋友可以参考下
  • 主要的函数为: function Ajax(asc, url, data, func) { $.ajax({ // asc: false, async: asc, //type: "post", //dataType: "json", type: "get", dataType: "jsonp", //jsonp: "Callback", // jsonp...
  • 主要介绍了JavaScript回调函数,帮助大家正确理解和使用 JavaScript中回调函数,感兴趣的小伙伴们可以参考一下
  • 使用Jquery的时候发现它里面的很多方法都提供回调函数,接下来通过本篇文章给大家介绍js自定义回调函数,需要的朋友参考下
  • javascript中回调函数非常重要,它们几乎无处不在。像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply()函数的,或者有一些简短...
  • js自定义回调函数

    2020-10-23 04:10:28
    主要介绍了javascript自定义回调函数,感兴趣的小伙伴们可以参考一下
  • 主要介绍了JS回调函数原理与用法,结合实例形式详细分析了JavaScript回调函数的概念、原理、用法,并给出了PHP回调函数的使用示例,需要的朋友可以参考下
  • 主要介绍了JS中的回调函数,结合实例形式简单分析了javascript回调函数的感念、功能、使用方法及相关注意事项,需要的朋友可以参考下
  • 回调函数与写在外面的区别,异步加载?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 286,273
精华内容 114,509
关键字:

js中的回调函数