回调函数

本文通过生动的例子解释了回调函数的概念及用途。从生活中买包的例子到编程中的实际应用场景,阐述了回调函数如何帮助程序在运行时根据不同的回调登记来改变行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直对回调函数一知半解,今天晚饭后碰到了回调函数,顺便查了查资料,整理如下:

主要信息来自https://www.zhihu.com/question/19801131

例1、来看这么个过程:假如你要买一个包包,但是你喜欢的那款包断货了,柜姐留下了你的电话并承诺一到货就会通知你。后来包包到货了,柜姐打了你的电话,你去店里去了货。
那么在上述事件中,你的电话号码就是回调函数你把电话留给柜姐就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,柜姐给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件

例2、运行程序的时候,应用需要调用库的接口,此时,如果库要求应用先传递一个函数或参数,这个被传入后来又被调用的函数就称为回调函数(callback function)。就像例子1,柜姐在到货的时候会通知你,但你得先留下你的号码以用于通知。因此,回调函数就成了一个高层调用底层(不仅仅是库函数),底层再过来用高层的过程。故而,函数如其名,古人诚不我欺。也可以说,回调函数的精妙之处在于“程序可以在运行时,通过登记不同的回调函数,来决定、改变中间函数的行为”。这是因为,在上层调用底层函数,而底层函数在做这个事情的时候,自身的信息不够,而上层函数有这个信息,因此,根据信息的不同,就可以实现不同的函数行为。

例3、function callback() { 

 alert("I am in the callback!");
}
function work(func) { 
alert("I am calling the callback!"); 
func(); 
}

work(callback);
这是一个简单的回调例子,callback作为一个变量传入work中被work调用。

例4、举个简单的例子 对一个文件的读入如果不用callback
fileObject = open(file)
# 我们必须等到文件打开才能进行读入 在这之前我们不能做其他事情
fileObject.write("We are writing to the file.")

使用callback

# 我们把writeToFile 为一个function 传入open writeToFile就是一个callback function
fileObject = open(file, writeToFile)
# 我们不需要一直等着这个文件打开
# 文件打开的时候 他就会执行callback 也就是writeToFile(具体实现 可以用promise) 在这之前

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值