JavaScript 闭包

2023-04-12 15:51:21 浏览数 (2)

闭包:

  • 闭包是由函数以及声明该函数的词法环境组合而成的。该环境包含了这个闭包创建时作用域内的任何局部变量。
  • 也就是,两个嵌套关系的函数,内部函数可以访问外部函数定义的变量。
  • 是通过作用域链,进行逐层查找并访问的

闭包的优点:

  1. 形成私有化空间,避免全局变量污染
  2. 持久化内存,保存数据

闭包的缺点: 由于持久化内存,导致内存泄漏

闭包主要用用场景:

  1. 实现分段计算
  2. 数据保护
  3. 缓存数据

闭包例子

代码语言:javascript复制
function makeFunc() {
  const uname = 'Tricia'
  function displayName() {
      console.log(uname)
  }
  return displayName
}

const myFunc = makeFunc()
myFunc() // Tricia

0 人点赞