单选题(80分) 51、(1分)什么是JavaScript中的闭包? A、一个对象一个函数和它访问的外部变量的组合 B、一个原型对象 O·C、一个函数 、闭包是指一个函数以及它访问的外部变量的组合,这些变量在函数内部可以被访问,但在函数外部无法访 问。
时间: 2024-02-23 19:58:42 浏览: 95
《JavaScript程序设计》期末复习题(答案)[归类].pdf
在JavaScript中,选项A是正确的,闭包是指一个函数以及它访问的外部变量的组合,这些变量在函数内部可以被访问,但在函数外部无法访问。函数内部的代码可以访问该函数外部的变量,这些变量被称为自由变量。当函数返回时,它也返回了自由变量的值,并将这些值保存在闭包中。这意味着即使在函数调用之后,闭包仍然可以访问这些变量。
例如,下面的代码创建了一个函数 `makeCounter`,该函数返回另一个函数 `counter`,后者可以使用闭包来保存计数器的值:
```js
function makeCounter() {
var count = 0;
function counter() {
count++;
console.log(count);
}
return counter;
}
var counter1 = makeCounter();
counter1(); // 输出 1
counter1(); // 输出 2
var counter2 = makeCounter();
counter2(); // 输出 1
counter2(); // 输出 2
```
在上面的代码中,`makeCounter` 函数创建了一个计数器变量 `count`,并返回了一个新函数 `counter`。该函数使用闭包来保存计数器的值,并在每次调用时将其增加。然后,该函数被调用两次,并将结果输出到控制台。最后, `makeCounter` 函数被再次调用,返回了另一个新的计数器函数 `counter2`,并将其结果输出到控制台。
阅读全文