彻底搞懂 JavaScript 闭包:你只需要这个例子!

闭包是什么? 有什么用? 为什么它会造成内存泄漏?

相信很多人被这些问题困扰过。今天我们不啰嗦,一句话 + 一个经典例子,让你真正吃透闭包原理。

📌一句话理解闭包:

闭包是函数 + 它能访问的自由变量的组合。

换句话说:

函数内部访问了函数外部的变量,这个函数就“形成了闭包”。

🔧经典闭包示例:

js

复制编辑

function createCounter() {

let count = 0

return function () {

count++

console.log(count)

}

}

const counter = createCounter()

counter() // 1

counter() // 2

🔍这里发生了什么?

  • createCounter() 返回了一个匿名函数;
  • 这个匿名函数记住了 count 变量
  • 每次调用 counter(),它都还能访问 count 并累加。

这就形成了闭包!

🎯闭包的作用:

应用场景说明数据私有化外部无法直接修改 count,只能通过闭包修改记忆缓存闭包可用于缓存上一次结果函数工厂可以返回一组带有私有状态的函数

🧠常见误区:

js

复制编辑

var funcs = []

jrhz.info

for (var i = 0; i < 3; i++) {

funcs.push(function () {

console.log(i)

})

}

funcs[0]() // 3 ❗不是 0

funcs[1]() // 3 ❗不是 1

funcs[2]() // 3 ❗不是 2

为什么?因为所有函数都共享了同一个 i(3),而不是各自记住一个。

✅正确做法(使用 let 块级作用域):

js

复制编辑

for (let i = 0; i < 3; i++) {

funcs.push(() => console.log(i))

}

或者用立即执行函数(IIFE)创建闭包:

js

复制编辑

for (var i = 0; i < 3; i++) {

(function (j) {

funcs.push(() => console.log(j))

})(i)

}

🚨闭包缺点:内存泄漏

因为闭包长期引用外部变量,导致这些变量无法被垃圾回收,特别是搭配 DOM、定时器使用时。

✅解决方式:及时解除引用或封装合理作用域。

https://blog.csdn.net/qqqdqd/article/details/149209167

https://blog.csdn.net/qqqdqd/article/details/149209090

https://blog.csdn.net/qqqdqd/article/details/149208922

https://blog.csdn.net/qqqdqd/article/details/149209254

特别声明:[彻底搞懂 JavaScript 闭包:你只需要这个例子!] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

『金晨』“肇事逃逸”三个疑点难解释,圈内已有多个先例,她摊上事了

但八卦媒体爆料称,实际上当时驾驶汽车的是演员『金晨』,副驾驶坐着的是『金晨』的经纪人,助理徐长青则在后座。 2002年3月,『谢霆锋』驾驶着一辆法拉利跑车撞上花坛,事故发生后他没有留下来接受调查处理,而是被『张柏芝』开着奔…

『金晨』“肇事逃逸”三个疑点难解释,圈内已有多个先例,她摊上事了

快看!30天淡斑如换脸,只需这1招(淡斑效果)

这里要提醒大家的是:要实现全皮层褪黑的效果,第一是技术要深入到皮下层、真皮层以及棘层,而且必须均匀深度渗透,很多号称能深度渗透的产品,只是些许原料深入,达到真皮层的位置的原料基本上都可以忽略不计了,所以根本不…

快看!30天淡斑如换脸,只需这1招(淡斑效果)

2026年留香沐浴露权威测评:告别“五步散”,解锁高级伪体香(全球十大留香型沐浴露)

当沐浴从基础清洁升级为生活仪式,一款真正能兼顾持久留香、温和养护、高级香调的沐浴露,已成为精致人群的“隐形刚需”。其真正的法式调香背景、24小时留香实测、以及温和的氨基酸植萃配方,兼顾肌肤清洁需求与『香氛』生活美…

2026年留香沐浴露权威测评:告别“五步散”,解锁高级伪体香(全球十大留香型沐浴露)

『黄磊』女儿晒留学日常!19岁黄多多素颜穿白纱裙,与男同学保持距离(『黄磊』女儿写真)

更重要的是,黄多多在观众心中一直保持着很高的好感度,她那份与生俱来的优雅与才情,也让人对她的未来充满了期待。她与同学们保持了一些距离,尤其是与一位黑人男生的合影,更加显得她细心谨慎。在与同学们的合照中,她总是…

『黄磊』女儿晒留学日常!19岁黄多多素颜穿白纱裙,与男同学保持距离(『黄磊』女儿写真)

重酒石酸长春瑞滨注射液是否存在不良反应(酒石酸长春瑞滨软胶囊怎么样)

重酒石酸长春瑞滨注射液是一种抗『肿瘤』化疗药物,属于微管蛋白抑制剂类药物。该药主要用于非小细胞肺癌、转移性乳腺癌、晚期卵巢癌、恶性淋巴瘤等癌症的治疗。重酒石酸长春瑞滨注射液存在一定的不良反应风险。

重酒石酸长春瑞滨注射液是否存在不良反应(酒石酸长春瑞滨软胶囊怎么样)