Skip to content

回调函数理解

414字约1分钟

JavaScript

2022-11-8

最近经常遇到回调函数这个概念,查看相关资料后记录一下。

回调是什么?

回调(callback) 是对某段代码的引用,它被作为参数传递给另一段代码,并在某个时刻被调用。通俗点讲就是主函数中的某个参数是一个外部函数,当符合某个条件时,这个函数将会被调用.

为什么要使用回调函数?

使用回调可以将主函数与回调函数两者分开,主函数不需要关心被调函数叫什么、有什么用,只需要在某种条件下执行被调函数。可见函数回调可以实现松耦合,不管是主函数还是回调函数都可以进行单独维护。

A(_function){
    _function()
    console.log("我是主函数")
},
B() {
    setTimeout(console.log("我是回调函数"),1000)
},
//执行与结果
A(B)
/*
  我是主函数
  我是回调函数
*/

以上代码先输出“我是主函数”,随后输出被调函数B的内容,因此是一种异步回调,此外还有同步回调。异步回调在js中非常常见,检测窗口变化、检测屏幕滚动等。

window.addEventListener('scroll', this.homePageScroll);

homePageScroll作为参数传递给了addEventListener,订阅scroll这个事件,当屏幕发生滚动则调用作为参数的指定函数,addEventListener与被调函数并没有同时发生,所以homePageScroll便是一个异步回调函数。
所以,函数回调与函数直接调用都是两种不同的函数调用方式。