用js写个闭包
时间: 2023-09-15 13:20:37 浏览: 98
好的,以下是一个简单的闭包示例:
```js
function outerFunction() {
var outerVariable = "Hello, ";
function innerFunction(name) {
console.log(outerVariable + name);
}
return innerFunction;
}
var inner = outerFunction(); // outerFunction 返回了内部函数 innerFunction
inner("world"); // 输出 "Hello, world"
```
在这个示例中,`innerFunction` 是一个闭包,因为它可以访问 `outerFunction` 中的变量 `outerVariable`,即使 `outerFunction` 已经执行完毕并且已经返回了 `innerFunction`。当 `outerFunction` 被调用时,它返回内部函数 `innerFunction`,并将其分配给变量 `inner`。此时,`inner` 实际上是 `innerFunction` 函数对象的一个引用。之后,我们可以使用 `inner` 来调用 `innerFunction`,并且它仍然可以访问 `outerVariable` 变量。
相关问题
用JS 写一个闭包函数
当然可以!下面是一个使用 JavaScript 编写的闭包函数的示例:
```javascript
function outerFunction() {
var outerVariable = 'I am from outer function';
function innerFunction() {
console.log(outerVariable);
}
return innerFunction;
}
var closure = outerFunction();
closure(); // 输出:I am from outer function
```
在这个示例中,`outerFunction` 是一个外部函数,它包含一个内部函数 `innerFunction`。`innerFunction` 可以访问 `outerFunction` 中的变量 `outerVariable`,这是因为内部函数形成了闭包。在外部函数中,我们将内部函数 `innerFunction` 作为返回值返回并赋值给变量 `closure`。然后,我们可以通过调用 `closure()` 来访问和执行内部函数,并在控制台输出 `I am from outer function`。
请注意,闭包函数可以用于许多用例,如隐藏变量、实现模块化和创建私有变量等。以上示例只是其中之一。
用js写一个闭包的例子
以下是一个使用闭包的例子,它是一个计数器函数,每次调用它都会返回一个新的计数器实例:
```javascript
function counter() {
let count = 0;
return function() {
count++;
console.log(count);
}
}
const count1 = counter(); // 创建第一个计数器实例
count1(); // 输出 1
count1(); // 输出 2
const count2 = counter(); // 创建第二个计数器实例
count2(); // 输出 1
count2(); // 输出 2
```
在上面的例子中,`counter` 函数返回了一个内部函数,该函数可以访问外部函数的 `count` 变量。由于 JavaScript 的函数可以形成闭包,所以每个返回的内部函数都将拥有其自己的 `count` 变量,而且这些变量不会相互影响。这种方式可以非常方便地创建多个独立的计数器实例。
阅读全文