闭包与作用域
闭包是 JavaScript 中最容易被问到、也最容易答得不清不楚的概念。
先盯住什么
函数”记住”了它被创建时所在作用域里的变量。关键词:词法作用域。
易混淆
闭包不是”把变量拷贝一份”,它引用的是原变量,循环里最常踩坑。
定义
一个函数,加上它在定义时能访问到的外部作用域变量的引用,就构成了闭包。
典型场景
function makeCounter() {
let count = 0;
return () => ++count;
}
内存泄漏
如果闭包长期持有不再需要的大对象引用,会阻止 GC 回收,导致内存泄漏。
评论
使用 GitHub 账号即可参与加载较慢?可 直接前往 GitHub Discussions 查看与参与。