面试题:闭包

80 阅读1分钟

前言

这篇文章用于记录自己复习面试题的过程

什么是闭包?

当一个函数可以记住并访问到外部作用域的变量,导致外部作用域的某个变量无法被垃圾回收及时销毁时,就形成了闭包;

为什么要有闭包?

  • 将上层作用域的引用保存下来,形成方法或者属性的私有化
  • 保护函数的私有变量不受外部干扰
  • 形成不被销毁的栈内存

使用场景

  • 返回或者接受一个函数的时候
  • 自执行函数
  • 使用外部变量 or 全局变量的时候

闭包与作用域的联系

juejin.cn/post/703156…