闭包
时间: 2023-07-26 13:20:13 浏览: 129
闭包(Closure)是指在JavaScript中,内部函数可以访问其外部函数作用域中的变量和参数,即使外部函数已经返回,内部函数仍然可以访问这些变量和参数。这是因为JavaScript中的函数是一等公民,可以像变量一样被传递、赋值和返回。
一个闭包通常由一个外部函数和一个内部函数组成。内部函数可以访问外部函数作用域中的变量和参数,并且可以在外部函数执行完毕后被调用。
以下是一个简单的闭包示例:
```javascript
function outerFunction() {
var outerVar = 10;
function innerFunction() {
console.log(outerVar);
}
return innerFunction;
}
var innerFunc = outerFunction();
innerFunc(); // 输出 10
```
在这个示例中,我们定义了一个外部函数`outerFunction`,它包含一个内部函数`innerFunction`。`innerFunction`可以访问`outerFunction`作用域中的变量`outerVar`,并且可以在`outerFunction`执行完毕后被调用。
我们将`outerFunction`执行的结果赋值给变量`innerFunc`,此时`innerFunc`实际上是一个闭包,它可以在外部函数执行完毕后访问`outerVar`,并输出其值。
闭包的一个常见应用场景是模块化开发,通过闭包可以实现私有变量和方法的封装,避免全局变量的污染和命名冲突。
阅读全文