JavaScript闭包详解:面试场景中的深入探讨 面试官:什么是闭包?请简要解释一下。 候选人:闭包(Closure)是JavaScript中一个非常重要的概念,它指的是函数能够记住并访问它的词法作用域,即使这个函数在其词法作用域之外执行。换句话说,闭包使得函数可以“捕获”并保存其创建时的环境状态,包括外部变量和参数。 闭包的核心在于函数与其词法环境之间的绑定。当一个函数被定义时,它会自动捕获其所在的词法作用域,并且在函数执行时,它可以访问这些被捕获的变量,即使这些变量在其外部作用域中已经不再可用。 例如: function createCounter() { let count = 0; return function() { count++; console.log(count); }; } const counter = createCounter(); counter(); // 输出: 1 counter(); // 输出: 2 在这个例子中,createCounter 函数返回了一个匿名函数。这个匿名函数形成了一个闭包,因为它捕获了 count 变量。即使 createC …