回调函数通俗

来源:互联网 发布:淘宝卖什么 货源 编辑:程序博客网 时间:2024/06/15 17:41

     回调函数的含义:

网友通俗定义:

          一.例如:你想寄包裹,肯定要留下自己的联系方式和地址吧(相当于回调函数的地址)。然后开始打电话给快递,但快递不会马上来取件,而是通过你留下的联系方式和地址,在他有空或顺路的时候来联系你取件。在送包裹的过程中,服务好的话快递会在你包裹快递状态变化的各个环节通知你(比如已经送到分拣中心,由中心分发开始投递,到达对方所在城市,对方已经签收)。

大概就这样吧...

        二.把电话号码留下 我Call(回调)你

        三.回调函数最常见的是鼠标键盘钩子的回调。看了这个就很明白了。
第一人要第二人等待某件事A(挂钩,主调函数),在某个时刻T发生事件A(有消息发生),第二人要告诉第一人要相应的完成事件B(回调处理函数)。
可见主调函数和回调函数都是第一个人干的。

生活中这样的例子就是:
1、孩子告诉妈妈:明天我早起床,早点叫我。这是主调函数A。
2、妈妈第二天,早了半个小时叫孩子。这是消息响应T。
3、孩子起床。这是回调函数B。

再举一例
1、我告诉你,“当我的答案对你有帮助时,记得给我分数”。这是主调函数A。
2、你觉得我的答案好,给了分数。这是消息响应T。
3、我看到分数,很高兴。这是回调函数B。


四、可以使用回调函数的一个例子:

A要完成1件事,但对这件事的某个环节不清楚,必须通过B来完成这个环节;

问题是B完成这个环节的时间是不确定的,A如果一直问B,效率会很差;

但B是能够准确知道完成时间的,完成的时候B会给A一个通知,告诉A,你可以行动了,并把完成的结果(参数)告诉A

这样双方都不累;


实际操作的时候,A只要把某个函数fun写上自己的实现即可,但这个函数是B声明的,并且B在适当的时候调用这个函数,这个函数就是回调函数


我也来凑热闹
比如你显示器不亮了,你不知道怎么弄,那你就问在外地干IT的大表哥,你大表哥告诉你该怎么弄,然后需要你自己来操作。
你大表哥知道怎么弄,但是不会自己去弄,而是由你去弄。
换句话说,你大表哥实现了修理你显示器的方法,但他不会自己去调用,而是由你去调用。
那么你大表哥告诉你的修机器的方法就是回调函数。


普通函数与回调函数的区别:

  • 对普通函数的调用:
    调用程序发出对普通函数的调用后,程序执行立即转向被调用函数执行,直到被调用函数执行完毕后,再返回调用程序继续执行。从发出调用的程序的角度看,这个过程为“调用-->等待被调用函数执行完毕-->继续执行”

  • 对回调函数调用:
    调用程序发出对回调函数的调用后,不等函数执行完毕,立即返回并继续执行。这样,调用程序执和被调用函数同时在执行。当被调函数执行完毕后,被调函数会反过来调用某个事先指定函数,以通知调用程序:函数调用结束。这个过程称为回调(Callback),这正是回调函数名称的由来。












0 0
原创粉丝点击