零散知识点:简单理解回调函数
2016-08-12 12:25
197 查看
为什么用回调函数?
1、异步
2、不知道参数
1、异步
2、不知道参数
【讲师】沈逸(6******9) 23:14:12 回调 就是把 函数B 当做 字符串、数字这样的参数传给函数A 函数A 理论上会在它执行完成后,手动 执行函数B。 但是如果我的函数A 乱调用 也是可以的 【讲师】沈逸(6******9) 23:16:26 function fuck(callback) { callbak();//手动调用了 } function shit() { shit本身也是一个函数 } 执行的时候 这么调用 fuck(shit) //注意shit绝对不能加小括号,否则传的就不是函数,而是“不知道的一个什么玩意儿” Fl**r(25******69) 23:21:25 叔,回调函数可不可以调用在执行它的函数之前? 【讲师】沈逸(6******9) 23:21:41 随你啊 【讲师】沈逸(6******9) 23:22:03 fuck(callbak) { xxoo 执行完后调用 callbak() } 【讲师】沈逸(6******9) 23:22:34 但是你可以 故意反人类 fuck(callbak) { callbak() //老子就要先调用 这个回调 xxoo 再执行 xxoo } 【讲师】沈逸(6******9) 23:23:44 一般来说 我们懒得抽筋, 连shit都不高兴写 。于是就变成了 fuck(function(){ 这里面就是shit的内容 }) 【讲师】沈逸(6******9) 23:24:28 这也叫做 匿名函数 传参 【讲师】沈逸(6******9) 23:24:41 其实就是 连名字老子 都不高兴写 的传参方式 【讲师】沈逸(6******9) 23:25:18 世界上根本不存在 “回调”。 都是人类 发明出来的名词。 如果 我在fuck里面不手工调用传过来的函数, 回死了也没用 【讲师】沈逸(6******9) 23:27:10 还有一种是有参数的回调 fuck(callbak) { var xxoo='fuck'; callback(xxoo); } function shit(bb) { } 看这里调用 fuck(shit) 【讲师】沈逸(6******9) 23:28:03 演化成匿名函数 这就是为何 像jquery的ajax方法有n个参数 $.post('url',function(fuck){ 这里是回调 }); 【讲师】沈逸(6******9) 23:28:20 这就都是 主函数 在手动调用时,强迫传给你的 【讲师】沈逸(6******9) 23:29:20 搞清楚了这个 ,一下子把 所谓的“回调”逼格 全部降下来了 【讲师】沈逸(6******9) 23:30:07 这个再讲个技巧 【讲师】沈逸(6******9) 23:31:52 一般我们写函数应该这么写 function bb(fuck) { if(fuck==对象) 执行某个事情 if(fuck==数组) 执行另外的事情 } 这样 我们队友调用我们的bb函数时 既可以 1、bb({name:"shenyi")} 也可以 bb(['shenyi']); 【讲师】沈逸(6******9) 23:31:57 逼格一下子 提高了N倍 Fl**r(25******69) 23:32:25 双击查看原图 【讲师】沈逸(6******9) 23:33:06 这就是为何老外的 库,参数 又可以是字符串 又可以是对象 又可以是数组。 看起来好有逼格 其实 就是一个 “障眼法”,没啥稀奇的 【讲师】沈逸(6******9) 23:34:57 这种做法的最大好处是 兼容性 以前的函数 譬如 参数只能是数组,现在升级了,为了兼容老的程序,加个 对象参数模式 换汤不换药,继续 装逼 【讲师】沈逸(6******9) 23:42:24 function fuck() { } fuck就是函数(注意:没有写小括号) fuck() (这里我加了小括号,这就不是函数了,而是执行该函数,不知道是”啥玩意儿,如果没有return ,啥玩意儿都不是) 【讲师】沈逸(6******9) 23:43:45 很多同学 搞错了概念。 以为fuck()才是函数 【讲师】沈逸(6******9) 23:46:52 callback(xxoo); 【讲师】沈逸(6******9) 23:47:23 这里就是 母体(fuck函数就是母亲,手工调用了callbak,而这个callbak 就是shit) 【讲师】沈逸(6******9) 23:47:56 callback(xxoo); 就等于 执行了 shit(xxoo) 【讲师】沈逸(6******9) 23:48:49 1、fuck(shit) 2、fuck(function(xxoo){}) 【讲师】沈逸(6******9) 23:48:57 如果实在理解不了 就强记 【讲师】沈逸(6******9) 23:54:02 你在调用 fuck 的时候(譬如 fuck 就是 ajax ) 你事先知道 响应结果? 【讲师】沈逸(6******9) 23:54:16 明显只有 母体 执行 某个事情后 才知道结果,才能传给 shit 【讲师】沈逸(6******9) 23:55:50 永远要记住 fuck(shit); 你调用的是啥函数? 注意:不是 shit,而是调用了 fuck 【讲师】沈逸(6******9) 23:56:38 你在调用fuck函数时,根本不知道 得到什么结果,所以只能把 shit函数 传给fuck. 让fuck得到 结果后,反过来调用shit(这就得到了参数) 【讲师】沈逸(6******9) 23:58:32 你只能等待 fuck去 调用shit时 传参 【讲师】沈逸(6******9) 0:01:54 干嘛要回调? 1、异步 2、不知道参数 【讲师】沈逸(6******9) 0:02:07 否则 传来传去干啥,太空? 学**尽(17***4***5) 0:03:49 演化成匿名函数 这就是为何 像jquery的ajax方法有n个参数 $.post('url',function(fuck){ 这里是回调 }); 学**尽(17***4***5) 0:04:16 function(fuck是回调函数把) 【讲师】沈逸(6******9) 0:04:17 $.post('url',function(fuck){ 这里的fuck就是 母体通过各种 复杂的事情得到的 }); 【讲师】沈逸(6******9) 0:04:32 function(fuck) 就是shit函数 学**尽(17***4***5) 0:04:57 那fuck是一个参数 【讲师】沈逸(6******9) 0:05:00 function shit(fuck) 把名字( shit)去掉后 就是 function(fuck) 【讲师】沈逸(6******9) 0:05:26 fuck就是一个参数 只不过你事先不知道 是啥 【讲师】沈逸(6******9) 0:05:40 你需要 等待 $.post 这个 函数得到结果后,传给 你的匿名函数
相关文章推荐
- 回调函数 callback 的简单理解
- 简单理解javascript回调函数
- 一些简单,零散的知识点。。
- 【OC加强】OC编程语言强化知识点简单归纳——理解OC提升能力之用
- 关于回调函数的简单理解
- 自己对回调函数的一些简单理解
- Java中对于回调函数的简单理解
- Android 回调函数的理解,实用简单
- 快速排序的简单应用及回调函数的初步理解
- java超简单的android安卓回调函数的小范例理解
- c的回调函数与java中抽象函数,接口函数,抽象类简单理解
- 工厂方法的简单理解
- 打破沙锅——AOP简单理解
- c# interface 的理解(工厂模式)简单实例
- [JavaScript] 简单理解Ajax异步调用操作
- 最近做毕业设计发现市场上的Delphi书中关于TArrayField的一个错误理解,这里现简单的提一下以后有时间在好好的研究一下
- 08月28日学习杂记(复习:ANT,集合及零散知识点)
- 简单理解一下机会成本
- c# interface 的理解(工厂模式)简单实例