JavaScript中的闭包例子
时间: 2023-07-26 18:30:30 浏览: 50
以下是一个 JavaScript 中的闭包例子:
```javascript
function outerFunction() {
var outerVariable = "Hello, ";
function innerFunction(name) {
console.log(outerVariable + name);
}
return innerFunction;
}
var inner = outerFunction();
inner("John"); // 输出:Hello, John
```
在这个例子中,`outerFunction` 函数定义了一个内部函数 `innerFunction`,并返回了它。在 `outerFunction` 中定义了一个变量 `outerVariable`,并在 `innerFunction` 中使用了这个变量和传入的参数 `name`。
当我们执行 `outerFunction` 函数时,会返回 `innerFunction` 函数,并将其赋值给变量 `inner`,此时 `outerVariable` 变量仍然存在于内存中。
当我们调用 `inner` 函数并传入参数 `"John"` 时,`innerFunction` 函数可以访问 `outerVariable` 变量,因为它被定义在 `outerFunction` 的词法环境中。因此,`innerFunction` 输出的结果为 `"Hello, John"`。
这个例子中,`innerFunction` 函数可以访问 `outerVariable` 变量,即使 `outerFunction` 函数已经执行完毕并返回了。这就是闭包的一个经典例子。