函数回调

新人写博客,有误之处或者不足之处望见谅并告知,感谢!

----------------------------------------我是分界线------------------------------------

本人目前刚从事Lua脚本工作,也算是第一次接触,上班第一天同事问我,是否懂得函数回调?????

函数回调???什么东西??懂得函数引用,以及之前使用过的js将函数名传参进去并调用、引用,不过他问的肯定没有这么简单。于是我上网搜资料。。。。

对自己汗颜~~~先看下图:

当初仅看了这么个解释,当时的状态算是一知半解就差代码实现。。。。。还是上网搜吧。。。。。搞了半天、搜了半天,依旧在这个瓶颈,之后同事实在看不下去了就给我写了一个简单的demo。

---------------------------一下是Lua的程序----------------------

--这是容器

local tb1={
a_ = {}
}

--记录信息  算是一个接口
function tb1:write(event, target, call)
self.a_[event] = {t = target, c = call}
end

--检查信息是否存在,若存在,则调用函数
function tb1:check(event, ...)
if self.a_[event] then
self.a_[event].c(self.a_[event].t, ...)
end
end

--这是目标容器

local b = {}
function b:p(msg)  --目标函数,也是之后被回调的函数
print("传进来的信息是----"..msg)
end

tb1:write('a', b, b.p)    --保存信息或者是注册信息

tb1:check('a', 'aaaaaaaaaa')  --检查信息是否被注册

----------------------------------------Lua程序结束---------------------------------

程序原理:

write函数主要功能是注册信息,将传递进来的信息保存至tb1的表中,check函数主要功能是去检查event是否被注册,若成立则调用保存着的函数并将参数传递进去,这两个是主要功能函数。

p函数是打印函数,在这里当做被回调的函数,并且被保存,回调待命。

 

根据自己的理解简述下函数回调:

在一个空间中将事件与函数注册,之后从该空间中去寻找,若事件被触发则运行相应的函数。

跟函数引用的区别:

引用除了将信息传递进去之外,还需要将作用的函数传递进去,需要知道作用在哪个函数上;

而回调的机制不需要知道作用在哪个函数上,仅仅需要的是该事件已经被注册并且有相应的函数可以回调。

 

---------------------------------------------------------------这是一条丑爆了的分界线---------------------------------------------------

 

现在回想起来还是有点迷糊,如果哪里有失误之处望指教,新人小白首次发表,希望技术大牛多多指教!!

 

图片中的资源来自:http://blog.csdn.net/zhangliangzi/article/details/52066560

转载于:https://www.cnblogs.com/chen1026/p/8623758.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值