回调函数
一句话解释
回调函数是作为参数传给另一个函数的函数,由接收方在合适的时机(如事件发生、任务完成)“回头调用”。
用大白话说
“回调”就是“回头再调用”的意思。你把一个函数当作参数交给另一个函数,告诉它“等事情办完了,你回头调用我留给你的这个函数”。
function fetchData(callback) {
// 模拟异步请求数据
setTimeout(() => {
callback("数据拿到了");
}, 1000);
}
fetchData((result) => console.log(result)); // 1 秒后打印“数据拿到了”
回调在异步操作里特别常见:网络请求、定时器、读取文件,这些都需要“等结果出来再做事”。你没法在那里干等,于是留一个回调函数,让系统在结果好了之后自动调用。
回调的缺点是“回调地狱”——多层嵌套的回调会让代码难以阅读。这就是后来 Promise 和 async/await 出现的原因。但理解回调是理解 JS 异步的基础。
示例
javascript
function doLater(callback) {
console.log("先做我");
callback();
}
doLater(() => {
console.log("再做我(回调)");
});doLater 接收一个函数作为参数,先打印“先做我”,然后调用传入的回调函数,打印“再做我”。这就是回调。
工作原理
- 定义一个函数 A
- 把 A 作为参数传给另一个函数 B
- B 在内部某个时机调用 A
- A 此时才真正执行——所以叫“回调”
常见混淆
容易混淆的对象: Promise
关键区别: 回调是处理异步的早期方式,用函数作参数;Promise 是更现代的方式,用 .then() 链式调用,能更好处理多层异步,避免回调地狱。
相关术语
相关资源
相关课程
- 异步 JavaScript
回调是异步编程的基础
学习基础知识
通过结构化课程深入理解这个主题。
解读错误信息
用大白话解释常见错误——什么意思、为什么发生、如何修复。