KNOWLEDGE / NOTE
闭包与作用域
MDN · 站内原创整理
闭包让函数保留创建时的词法环境,适合封装状态,也需要注意生命周期和内存占用。
核心说明
闭包是函数和它创建时所在词法环境的组合。它可以让函数访问外层变量,因此适合封装计数器、工厂函数和事件处理状态。
关键点
- 闭包保存的是变量绑定,不是创建瞬间的简单快照。
- 事件监听器和定时器如果长期引用外层对象,可能延长对象生命周期。
- 把可变状态限制在工厂函数内部,可以减少模块之间的隐式依赖。
function createCounter() {
let count = 0
return () => ++count
}
const next = createCounter() 资料来源 在官方文档中核验:MDN ↗