只要闭包函数存在引用,其作用域链中的变量就不会被垃圾回收,不当使用可能导致内存泄漏。

论据/示例

function badPattern() {
  const largeData = new Array(1000000).fill('x');
 
  return function() {
    return largeData.length;
  };
}
 
const fn = badPattern();
// largeData 不会被回收,直到 fn 被置为 null

常见场景

  • 事件处理器未移除
  • 定时器未清除
  • DOM 引用未释放

关联