零散知识点:简单理解回调函数

为什么用回调函数?
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 这个 函数得到结果后,传给 你的匿名函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值