闭包在 JavaScript 中是如何工作的?
在本文中,我们将讨论关于 JavaScript 的闭包。让我们首先了解闭包到底是什么以及与 JavaScript 中的闭包相关的基本细节。
闭包是包含对其周围状态(词法环境)的引用的函数的组合。在 JavaScript 中,每次在运行时创建函数时都会创建闭包。换句话说,闭包只是一个函数的花哨名称,它记住了它内部使用的外部事物。
让我们看一些例子来了解闭包在 JavaScript 中是如何工作的。
示例 1:
- 在这个例子中,我们将声明一个闭包,它最终会从外部函数访问外部变量 balance。
- 在最内层函数中使用外部变量后,每次调用该外部函数时,该特定闭包将帮助我们从中扣除 100。
HTML
JavaScript Closures
HTML
JavaScript Closures
输出:
说明:在上面的示例中,currentbalance() 可以访问外部变量 balance,因此每次调用 initaccount() 方法时,余额都会减去 100。
示例 2:闭包可以嵌套,如下例所示。在示例中,outerfunction() 和 innerfunction() 都可以访问 counter 变量,因此在调用 Counter() 时,outerfunction() 和 innerfunction() 都会增加 counter 的值。在这种情况下,我们可以说闭包可以访问所有外部函数范围。
HTML
JavaScript Closures
输出: