Javascript闭包
时间: 2023-02-06 21:56:48 浏览: 146
JavaScript闭包
闭包是 JavaScript 中的一个概念,它指的是在函数内部定义的函数可以访问外部函数的变量。这就意味着,内部函数可以引用外部函数中定义的变量,即使外部函数已经结束执行了。这个特性使得闭包非常强大,并且在 JavaScript 的很多应用中都有所应用。
举个例子,我们可以定义一个函数 `makeAdder`,它接受一个参数 `x` 并返回一个函数,这个函数接受一个参数 `y` 并返回 `x` 和 `y` 的和。这个函数的定义如下:
```
function makeAdder(x) {
return function(y) {
return x + y;
};
}
// 使用 makeAdder 函数创建新的函数
var add5 = makeAdder(5);
// 使用新的函数计算 5 + 10
console.log(add5(10)); // 输出 15
```
在这个例子中,`add5` 函数是通过调用 `makeAdder` 函数并传入参数 `5` 创建的。当我们调用 `add5(10)` 时,内部函数 `function(y) { return x + y; }` 被执行,它引用了外部函数 `makeAdder` 中的变量 `x`,并使用了传入的参数 `y` 计算出结果。这就是闭包的一个例子。
阅读全文