JavaScript的闭包解释一下啊
时间: 2024-08-15 20:02:41 浏览: 45
零基础轻松学JavaScript闭包
JavaScript的闭包是一种特殊的函数特性,它允许内部函数访问外部函数作用域中的变量,即使外部函数已经执行完毕并返回了。当一个函数在其内部创建另一个函数,并返回这个新函数时,形成了一种闭包。这个内部函数可以“记住”外部函数的局部变量,就像一个小仓库一样,即使外部函数不在当前的作用域内也能保持对这些变量的引用。
举个例子:
```javascript
function outerFunction(x) {
var y = 10;
function innerFunction() {
console.log(x + y);
}
return innerFunction; // 返回的是innerFunction
}
var closureExample = outerFunction(5); // outerFunction执行完返回内函数
closureExample(); // 输出:15,因为闭包中能访问到x和y
```
在这个例子中,`innerFunction`就是一个闭包,它能够“记住”`outerFunction`中的`x`值,尽管`outerFunction`已经执行完毕。
阅读全文