闭包指的是一个函数可以访问外部函数的作用域中的变量,即使外部函数已经返回了,这些变量也能被内部函数访问。闭包的本质是指函数可以在其声明的词法作用域之外访问变量。当一个函数被定义时,它会创建一个词法作用域(Lexical Scope)。在这个作用域中,所有本地变量和参数都可供该函数访问。当这个函数返回时,它的词法作用域依然可以被内部函数访问,因此内部函数可以访问该函数内的变量。这是因为 JavaScript 的函数在创建时会保存对它们所能访问的变量的引用。这些引用被称为闭包。
上一篇:闭包的序列化