js回调函数(callback)理解Mark!讲之前说一句function say(){alert(,,,,,,,,)}var say=function (){alert(,,,,,,,)}var say=()=>{alert(,,,,,,,)}他们3个是一模一样的  只是写法不一样
一个是普通方法  另一个是匿名函数  一个是箭头函数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();}就失去了变量的灵活性。>
下面用代码[1]来证实我的理解。
<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> 
针对javascript回调函数传参数的简单实例问题:现在有函数如下定义:
function A(a,callback){
....
}
function B(){
....
}
则可以有如下调用
A(a,B);来实现回调。现在我希望传给B一个参数c,即实现类似于:A(a,B(c));的效果,各位高手帮帮忙,应该如何实现?

下面的解答來自[2]:

<html>
<head>
<title>
jsp3
</title>
</head>
<body bgcolor="#ffffff">
<script language="javascript" type="text/javascript">
function A(a,callback){
var b=callback;
alert(a+b);
}
function B(c){
return (-c);
}
</script>
<form method="post" action="jsp3.jsp">
<br><br>
<input type="button" name="Submit" value="Submit" onclick="A(4,B(3));">
</form>
</body>
</html>

#####################################################################################

我包装了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)
显然都不行,如之奈何?求助~简单,很多方法都定义了回调函数,回调函数也是函数,就是说不管怎么传,只需要是个函数类型即可。写法如下。
方式1,
doAjax(参数1,参数2,function(request,opts){callback(request,opts,agrs);});
function callback(request,opts,args){};
方式2,
方式2,
var args=N;
doAjax(参数1,参数2,function(request,opts){var X=N;回调函数代码块..和以上几乎一样,看个人编码方式选择。
});
.描述filter 为数组中的每个元素调用一次 callback 函数,并利用所有使得 callback 返回 true 或 等价于 true 的值 的元素创建一个新数组。*filter 方法示例

//排除掉小于10的值
var isBigEnough=(element)=> {return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]

Reference:

[1]http://luxiao1223.blog.51cto.com/2369118/482885

[2]http://blog.sina.com.cn/s/blog_4bb52a160100da4w.html

js回调函数的理解(轉)相关推荐

  1. 【转】JS回调函数--简单易懂有实例

    JS回调函数--简单易懂有实例 初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数. 我们先来看看回调的英文定义:A callback is a function that is ...

  2. Js高级-函数的理解

    一函数的理解: 理解 函数也是对象 函数是特殊的对象,因为函数具备行为,通过调用可以执行内部语句 定义函数方式 函数声明式:function fun(){} 函数表达式: var fun2 = fun ...

  3. 回调函数举例ajax,通过回调函数的理解来进一步理解ajax及其注意的用法

    一,再一次理解回调函数 (function($){ $.fn.shadow = function(opts){ //定义的默认的参数 var defaults = { copies: 5, opaci ...

  4. mysql.js回调函数_js回调函数(callback)

    Mark! js学习 不喜欢js,但是喜欢jquery,不解释. 自学jquery的时候,看到一英文词(Callback),顿时背部隐隐冒冷汗.迅速google之,发现原来中文翻译成回调.也就是回调函 ...

  5. Java 回调函数的理解

    以下是我对java回调函数的理解,希望对各位有帮助. 简而言之,假设有两个类A与B,还有一个回调接口C(有一个c方法).其中A类持有一个B类对象作为属性和拥有一个a方法,并实现了接口C,所以A类中就有 ...

  6. JS回调函数(callback)

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

  7. html js 回调函数,js中回调函数的学习笔记

    回调函数是什么在学习之前还真不知道js回调函数怎么使用及作用了,下面本文章把我在学习回调函数例子给各位同学介绍一下吧,有需了解的同学不防进入参考. 回调函数原理: 我现在出发,到了通知你" ...

  8. node.js 回调函数

    Node.js 回调函数 Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数, ...

  9. js 回调函数小例子

    js 回调函数小例子 1 <script> 2 //将函数作为另一个函数的参数 3 function test1(){ 4 alert("我是test1"); 5 } ...

最新文章

  1. ArcGIS 10 五大飞跃
  2. [WPF] VisualBrush 中的布局
  3. 广播等风暴的解决办法
  4. iOS UI 开发按钮的使用
  5. 布朗的计算机排名,布朗大学计算机工程硕士排名第26(2020年TFE Times排名)
  6. CSS定位规则之BFC
  7. 技术分享| Sip与WebRTC互通-SRProxy开源库讲解
  8. VM中安装虚拟工具Vmware tools
  9. 关于java的文件操作
  10. java mp3合并_java合并MP3文件
  11. 生物岛实验室(省属)招聘电子工程师
  12. 约瑟夫环!编 号是1,2,??,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向 自1开始顺序报数,报到m时停止报数。
  13. 微信推送封面尺寸_微信公众平台图片尺寸是多少 如何设置
  14. MS VC6 链接错误处理
  15. WPS的Excel做一个下拉选择功能
  16. 由OJ提交结果联想到内存页面大小的一些小猜想
  17. eclipse Build Automatically在哪里
  18. MuseScore批量化插件使用
  19. SQL数据分析淘宝用户分析实操
  20. ubuntu双系统引导梅花_Ubuntu Windows双系统和USB无线网卡安装的正确方法

热门文章

  1. windows程序快速启动的方式:WIN键+R
  2. 微信小程序一定要用https的理由,小程序使用HTTPS链接分析
  3. linux 查看强制位,linux强制位与冒险位
  4. c字符串中包含双引号_码哥学Python,一起解密神秘的字符串密码
  5. 7360清零方法_兄弟、联想、美能达、富士施乐全系列打印机加粉清零方法
  6. java最大内存_JAVA:测试java虚拟机支持的最大内存 Xmx 值?Tomcat 内存溢出?
  7. vuepress 代码高亮支持的语言
  8. Zookeeper分布式锁的使用
  9. js基本数据类型和复杂数据类型的区别
  10. localStorage.setItem()前后端分离情况下使用