Mark!

js学习

不喜欢js,但是喜欢jquery,不解释。

自学jquery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗。迅速google之,发现原来中文翻译成回调。也就是回调函数了。不懂啊,于是在google回调函数,发现网上的中文解释实在是太“深奥”了,我承认自己才疏学浅了。看了几个回调的例子后,貌似有点理解了。下面是我对回调函数的理解,要是理解错了,请指正,不甚感激。

首先还是从jquery网站上的英文定义入手,身为国人,我真感到悲剧。一个回调的定义被国内的“高手”解释成什么样,就在那绕圈子,貌似只有把你绕进去了,他才算高手。浮云,一切都是浮云。

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

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

<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>

转载:http://luxiao1223.blog.51cto.com/2369118/482885

针对javascript回调函数传参数的简单实例

问题:

现在有函数如下定义:
function A(a,callback){
....
}
function B(){
....
}
则可以有如下调用
A(a,B);来实现回调。

现在我希望传给B一个参数c,即实现类似于:

A(a,B(c));的效果,各位高手帮帮忙,应该如何实现?

解答:

    1. <html>
    2. <head>
    3. <title>
    4. jsp3
    5. </title>
    6. </head>
    7. <body bgcolor="#ffffff">
    8. <script language="javascript" type="text/javascript">
    9. function A(a,callback){
    10. var b=callback;
    11. alert(a+b);
    12. }
    13. function B(c){
    14. return (-c);
    15. }
    16. </script>
    17. <form method="post" action="jsp3.jsp">
    18. <br><br>
    19. <input type="button" name="Submit" value="Submit" onclick="A(4,B(3));">
    20. </form>
    21. </body>
    22. </html>

转载于:http://blog.sina.com.cn/s/blog_4bb52a160100da4w.html

<span style="font-size:14px;">我包装了jQuery的ajax方法
function doAjax(u,param,callback){
$.ajax({
type:'POST',
url:u,
data:param,
success:callback
});
} function showAlert(data){
alert(data);
} 比如这样调用 doAjax("server.php","id=12&type=1",showAlert);
$.ajax 在success后,会返回一个data到showAlert中,显示出来 ,没有问题.
可是,当我想多传一个参数给showAlert时怎么写?
写成doAjax("server.php","id=12&type=1",showAlert("hi",data))、或者把上面的success:callback 写成success:callback(msg,data)显然都不行,如之奈何?求助~~~</span>

  

<span style="font-size:14px;color:#333333;">简单,很多方法都定义了回调函数,回调函数也是函数,就是说不管怎么传,只需要是个函数类型即可。写法如下。
方式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;
回调函数代码块..
和以上几乎一样,看个人编码方式选择。
});</span>

  

越不想学什么,越就被什么所折磨。看看javascript回调吧。 直接上码吧。。

    1. <</span>html>
    2. <</span>head>
    3. <</span>title>回调函数(callback)</</span>title>
    4. <</span>script language="javascript" type="text/javascript">
    5. function a(callback){
    6. alert("我来自父函数a");
    7. callback();
    8. }
    9. function b(){
    10. alert("我来自子(回调)函数 b");
    11. }
    12. function c(){
    13. alert("我来自子(回调)函数 c");
    14. }
    15. function test(){
    16. a(b);
    17. a(c);
    18. }
    19. //--------------------下面2个函数简单演示了从父函数传递给回调函数----------
    20. //Callback 就是一个参数名 这个参数代表的是一个函数 暂且不要管这个函数有没有参数
    21. //  。。。 应该还有其他写法吧?
    22. function e(m,n,Callback){
    23. var d = m+n;
    24. alert("一个从父函数e 产生的参数将要被传递给回调函数 ,这个参数是:"+d);
    25. //这里才写你想调用的函数---参数要正确
    26. Callback(d);
    27. //-----------
    28. }//     |
    29. //      |
    30. function callback(data){
    31. alert("我是回调函数,我的名字叫:callback ,我接收到来自父函数的参数,参数是:"+data);
    32. }
    33. </</span>script>
    34. </</span>head>
    35. <</span>body>
    36. <</span>h2>a CallBack is a function that is passed as an argument to another function and is executed after its parent function has completed;</</span>h2>
    37. <</span>hr />
    38. <</span>a href="#" onclick="javascript:test();">不传递参数的Callback</</span>a><</span>br />
    39. <</span>br />
    40. <</span>br />
    41. <</span>br />
    42. <</span>a href="#" onclick="javascript:e(7,8,callback);">传递参数的Callback</</span>a>
    43. <</span>hr />
    44. </</span>body>
    45. </</span>html>

转载于:http://blog.sina.com.cn/s/blog_601b97ee0101f1rc.html

js回调函数(callback)理解的更多相关文章

  1. js回调函数的理解

    js回调函数(callback)理解 Mark! 讲之前说一句 function say(){ alert(,,,,,,,,) } var say=function (){ alert(,,,,,,, ...

  2. JS回调函数(callback)

    在使用Jquery的时候,用到Callback(),回调函数的概念.而且很多. 比如: $.ajax({ url:"test.json", type: "GET" ...

  3. js回调函数(callback)(转载)

    学习jquery时,对回调函数感觉很困惑,在晚上找了半天,忽然发现这篇文章很浅显,基本说明了问题.故转载 原文: 自学jquery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速go ...

  4. JS回调函数(理解篇)

    概述: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而 ...

  5. 妙谈js回调函数的理解!

    很有共鸣,之前也是一直对回调函数感觉不明不白的,自己也看了不少解释说明.后来我觉得造成很多人对回调理解困难的一个原因就是,我在开发中见到的大多数使用了回调函数的情况都是直接上来就 传一个回调函数进去 ...

  6. js回调函数callback()

    <a id="btnSave" href="javascript:void(0)" class="easyui-linkbutton" ...

  7. 关于js的callback回调函数的理解

    回调函数的处理逻辑理解:所谓的回调函数处理逻辑,其实就是先将回调函数的代码 冻结(或者理解为闲置),接着将这个回调函数的代码放到回调函数管理器的队列里面. 待回调函数被触发调用的时候,对应的回调函数的 ...

  8. 如何理解JS回调函数

    1.回调函数英文解释: A callback is a function that is passed as an argument to another function and is execut ...

  9. js中的回调函数的理解和使用方法

    js中的回调函数的理解和使用方法 一. 回调函数的作用 js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数. 二. 回调函数的解释 因为 ...

随机推荐

  1. Linux主机安全

    Linux主机安全 1.  禁用远程登录root. 2.修改ssh默认端口 暂定为3600. 3.  输错三次密码,禁用5分钟. 3.1 非图形界面登录 vim /etc/pam.d/login 在# ...

  2. Java 语句总结

    一.替代if语句x = a ? b:c; 等价:if (a){ x=b;}else{x=c;}二.页面展示二维数组 <s:iterator var="rt" value=&q ...

  3. 几个系统调用分析 glibc中的malloc调用和共享内存原理

    本文主要分析内存以及I/O相关的系统调用和库函数的实现原理,根据原理给出在使用过程中需要注意的问题和优化的侧重点,本文涉及到的系统调用包括readahead,pread/pwrite,read/wri ...

  4. rsync传输性能测试总结 转

    测试环境 1.1服务器硬件信息 1.2 服务器软件信息 1.3 Rsync所能够支持的功能 (1)支持断点续传 (2)支持使用ssh传输加密 (3)支持128位MD4校验(3.0以后版本使用MD5加密 ...

  5. 苹果API常用英语名词

    0. indicating决定 1.in order to 以便 2.rectangle bounds 矩形尺寸 3.applied 应用 4.entirety全部 5.technique 方法 6. ...

  6. JSON Web Token

    What is JSON Web Token? JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact a ...

  7. [Call Vibrator] How to Enable Outgoing Call Vibration without ROOT

    Call Vibrator requires the radio log of phone to detect when outgoing call is answered. But since An ...

  8. MD5和DES加密方法

        /// <summary>         /// MD5加密         /// </summary>         /// <param name=&q ...

  9. SQLserver查看数据库端口 脚本

    exec sys.sp_readerrorlog 0, 1, 'listening'

  10. hduoj 4712 Hamming Distance 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...