提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、回调函数的基本概念
1. 什么是回调函数?
回调函数(Callback Function)是指作为参数传递给另一个函数的函数,并在特定条件满足或事件发生时被调用执行的函数。回调函数允许我们在异步操作完成后执行特定代码。
2. 回调函数的特点
函数作为参数:回调函数本质上是作为参数传递的函数
延迟执行:回调函数不会立即执行,而是在特定条件满足时被调用
控制反转:主函数控制何时调用回调函数
灵活性:可以动态改变程序行为
3. 简单示例
// 定义一个接收回调函数的函数
function greet(name, callback) {
console.log(`Hello, ${name}!`);
callback(); // 调用回调函数
}
// 定义回调函数
function sayGoodbye() {
console.log('Goodbye!');
}
// 使用回调
greet('Alice', sayGoodbye);
/*
输出:
Hello, Alice!
Goodbye!
*/
二、回调函数的常见应用场景
1. 事件处理
javascript
复制
下载
// DOM事件回调 document.getElementById('myButton').addEventListener('click', function() { console.log('Button clicked!'); });
2. 定时器
javascript
复制
下载
// setTimeout回调 setTimeout(function() { console.log('This runs after 1 second'); }, 1000);
3. 网络请求
javascript
复制
下载
// 传统XMLHttpRequest回调 function fetchData(url, successCallback, errorCallback) { const xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr.onload = function() { if (xhr.status === 200) { successCallback(xhr.response); } else { errorCallback(new Error(xhr.statusText)); } }; xhr.onerror = function() { errorCallback(new Error('Network Error')); }; xhr.send(); }
4. Node.js中的I/O操作
javascript
复制
下载
// Node.js文件读取回调 const fs = require('fs'); fs.readFile('example.txt', 'utf8', function(err, data) { if (err) { console.error('Error:', err); return; } console.log('File content:', data); });