📜  闭包在 JavaScript 中是如何工作的?

📅  最后修改于: 2022-05-13 01:56:20.289000             🧑  作者: Mango

闭包在 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

         

    

       

输出: