回调函数是JavaScript中将函数作为参数传递并在特定时机执行的编程模式,本质是函数引用,常用于事件监听、定时器、AJAX及数组方法;优点包括解耦逻辑、支持异步、符合函数式编程;缺点有回调地狱、错误处理分散、控制反转等;现代常用Promise和async/await替代复杂异步场景。
回调函数是 JavaScript 中一种将函数作为参数传递给另一个函数,并在特定时机由该函数内部执行的编
程模式。
它本质上是一个函数引用,被当作值传入其他函数,在某个操作完成(比如异步任务结束、事件触发、遍历执行等)后被调用。常见于事件监听、定时器、AJAX 请求、数组方法(如 map、filter、forEach)中。
例如:
function sayHello(name, callback) {
console.log('Hello, ' + name);
callback(); // 在这里执行传入的函数
}
sayHello('Alice', function() {
console.log('Nice to meet you!');
});
// 输出:
// Hello, Alice
// Nice to meet you!
它让代码具备灵活性和可扩展性,尤其适合处理不确定执行时机的操作。
主要问题集中在可读性、错误处理和控制流管理上,尤其嵌套过深时会明显暴露缺陷。
为缓解回调的局限,ES6 引入了 Promise,ES8 推出 async/await。它们并非完全取代回调,而是提供了更清晰的异步抽象: