小霸王其乐无穷之函数回调

小霸王游戏机是中国上一代备受欢迎的家用游戏机,它在1990年代初期开始流行。当时,由于游戏软件受限,国内的游戏市场相对匮乏,这使得小霸王游戏机成为许多70、80后童年时光中难忘的一部分。

图片

小霸王游戏机分为两大主要部分:游戏机本身和卡带。游戏机是运行和操控平台,而卡带可以切换,让玩家尝试各种不同的游戏。如果把主机和游戏捆绑在一起,那对玩家来说将是非常糟糕的一件事。

编程是集众家之长,借鉴各种优秀思想的过程。当我们设计一个定时器函数,在到达指定时间后执行某些操作时,最佳实践是避免将具体操作写死在函数里。这就好比把游戏机和卡带结合在一起,导致函数只能做一件事,这显然是不理想的。优秀的设计应该是什么样的呢?定时器负责定时,而执行什么操作则由调用者决定。这样不就实现了游戏机和卡带的分离吗?定时器只负责定时,时间到了,你告诉我要执行什么操作,我就执行什么操作,简单高效。

幸好,在JavaScript中已经为我们内置了定时器函数,其中一个延时定时器setTimeout,它有两个参数,第一个参数是函数类型的参数,第二个参数是多少毫秒后执行第一个参数的函数。让我们小试一下,在1秒后,控制台输出"千锋数字智慧大前端",代码如下:

function printQfedu(){
   
     console.log("千锋数字智慧大前端");}setTimeout(printQfedu, 1000);

这段代码会在执行后的1秒后,控制台输出"千锋数字智慧大前端"。需要注意的是,printQfedu可以当做变量使用,它表示整个函数。从这段代码我们可以看出,我们把一个任务传递给了定时器,定时器在1秒后会执行这个传入的任务,也就是说在我们看不到的代码的地方,执行了一次“printQfedu()”函数。

那说了这些跟回调有什么关系吗?有的,这个回调可以用两种非物质非标准说法,第一种是回头再执行传入的函数(像不像改天请你吃饭),另一种是调用回来,来个回马枪,那么

什么是回调函数

回调函数是一种在编程中常见的概念,指的是将一个函数作为参数传递给另一个函数,并在特定的事件或条件发生时由该函数执行。在异步编程中,回调函数通常用于处理异步操作的结果或事件的发生。回调函数的使用使得程序可以在合适的时机执行特定的逻辑,提高了代码的灵活性和可扩展性

回调函数的好处

简单来说,回调函数的主要好处是在异步编程中实现非阻塞操作,允许代码在某个事件完成后执行相应的逻辑,而不必等待事件完成。这样可以提高程序的响应性能和效率,使得代码更加灵活和可扩展

常见的回调函数使用

    1.  定时器:使用setTimeout或setInterval函数设置定时器,当指定的时间到达时,执行回调函数。(到达指定时间后,调用我们自己写的函数)
    2.  异步请求:在进行网络请求或服务器端操作时,通常使用回调函数处理异步操作的结果。当请求完成后,回调函数会被调用,以处理服务器返回的数据或错误。(设定一个如果有结果的时候,该如何处理)
    3.  Promise:在使用Promise进行异步编程时,会大量使用回调函数。(构造器是回调函数、当在不同通道中获取数据时,then的参数或者catch参数)
    4.  定义自定义函数:在自定义函数中,可以接收一个回调函数作为参数,使得函数的行为可以由调用者来定义。
    5.  数组的常用方法中,map、reduce、every等,参数都是回调函数。

总结

扫描二维码关注公众号,回复: 16105332 查看本文章

回调函数可以被视为传入的一项任务,在特定条件满足时触发执行(例如定时器),或者根据这项任务进行判断和处理(例如数组的方法)

猜你喜欢

转载自blog.csdn.net/sdasadasds/article/details/132161384
今日推荐