写一个简单的闭包
时间: 2023-07-23 08:22:02 浏览: 89
一个闭包是指一个函数可以访问其词法作用域之外的变量。在 JavaScript 中,函数可以作为参数传递给另一个函数,或者函数可以在其它函数内部定义,这就导致了闭包的出现。下面是一个简单的闭包例子:
```
function outerFunction() {
const outerVariable = 10;
function innerFunction() {
console.log(outerVariable);
}
return innerFunction;
}
const innerFunc = outerFunction();
innerFunc(); // 输出 10
```
在上面的例子中,`outerFunction` 是一个外部函数,它返回一个内部函数 `innerFunction`。在 `innerFunction` 中,可以访问 `outerVariable` 变量,因为它在 `outerFunction` 中定义。当我们调用 `outerFunction` 时,它返回 `innerFunction`,并将其赋值给 `innerFunc` 变量。当我们调用 `innerFunc` 时,它输出 `outerVariable` 的值,即 10。
这个例子中,`innerFunction` 可以访问 `outerVariable` 变量,即使 `outerFunction` 已经执行完成并从调用堆栈中弹出了。这是因为 `innerFunction` 形成了一个闭包,它可以访问 `outerFunction` 的词法作用域中的变量。
阅读全文