以下是一个使用闭包和回调函数的JavaScript示例:
// 闭包示例
function outerFunction() {
var name = "John";
function innerFunction() {
console.log("Hello, " + name);
}
return innerFunction;
}
var greeting = outerFunction();
greeting(); // 输出: "Hello, John"
// 回调函数示例
function fetchData(callback) {
setTimeout(function() {
var data = "This is the data fetched from the server";
callback(data);
}, 2000);
}
function processData(data) {
console.log("Processing data: " + data);
}
fetchData(processData); // 输出: "Processing data: This is the data fetched from the server"
在闭包示例中,outerFunction
返回了一个内部函数innerFunction
,该内部函数可以访问outerFunction
中的变量name
。通过将outerFunction
的返回值赋给greeting
变量,我们可以通过调用greeting
函数来访问name
变量。
在回调函数示例中,fetchData
函数模拟从服务器获取数据,并通过回调函数将数据传递给processData
函数。processData
函数定义了对数据的处理逻辑,当数据被获取后,fetchData
函数会调用processData
函数并传递数据作为参数。