回调函数(Callback Functions):在JavaScript中,回调函数是作为参数传递给其他函数的函数。当执行某个操作完成后,主函数将调用回调函数来处理结果。这种机制常用于异步编程,例如处理AJAX请求或定时器事件。
以下是一个简单的示例,其中回调函数用于处理异步请求的结果:
function fetchData(callback) { // 模拟异步请求 setTimeout(function() { const data = '这是从服务器获取的数据'; callback(data); // 调用回调函数处理数据 }, 2000); } function processData(data) { console.log('处理数据:', data); } fetchData(processData); // 将回调函数传递给fetchData函数
匿名函数(Anonymous Functions):匿名函数是没有名称的函数,它们可以被直接定义和使用。通常作为回调函数、立即执行函数或函数表达式中的函数。
以下是一个使用匿名函数作为回调函数的示例:
setTimeout(function() { console.log('2秒后执行的匿名函数'); }, 2000);
匿名函数还可以通过赋值给变量或作为立即执行函数使用:
const greet = function(name) { console.log('Hello', name); }; greet('Alice'); // 输出: Hello Alice // 立即执行函数 (function() { console.log('这是一个立即执行函数'); })();
递归函数(Recursive Functions):递归函数是在函数体内调用自身的函数。通过这种方式,函数可以重复执行相同的操作,直到满足特定条件为止。
以下是一个计算阶乘的递归函数示例:
function factorial(n) { if (n === 0) { return 1; // 基准条件 } else { return n * factorial(n - 1); // 递归调用 } } console.log(factorial(5)); // 输出:120
递归函数需要注意设置基准条件(停止递归)以避免无限循环,并确保每次递归调用都朝着基准条件靠近。