🚀 JavaScript闭包详解

📅 发布于 2026年1月 | 👤 作者:博主 | 🏷️ 标签:闭包, JavaScript, 作用域, 函数式编程, Web开发, 前端, 面试

欢迎来到我的博客文章!所有文章都是满满的前端干货,文章简明扼要。

首先,在函数外部是无法访问函数内部的变量的。为了解决上述问题,则引入了闭包。简单来说就是为了能访问函数A内部的变量值,需要在函数A中定义一个其他的函数B,并且将B返回给外部变量,那么外部变量就可以通过B来访问到函数A中的变量了。这就是闭包。

优点:

隐藏变量以及防止变量被篡改和作用域的污染。

缺点:

由于保留了作用域链,会增加内存的开销。因此需要注意内存的使用,并且防止内存泄露的问题。

function a() {
  var b = 1;
  var c = 2;
  // 这个函数就是个闭包,可以访问外层 a 函数的变量
  return function () {
    var d = 3;
    return b + c + d;
  }
}

var e = a();
console.log(e());
← 返回首页