闭包“三问”

·  阅读 29

本篇博客是作为个人自学记录,如有不足之处,请批评指正。

什么是闭包?

  • 如果一个函数用到了外部的变量,那么这个函数加这个变量就叫做闭包。

代码如下:

let a = 1
function fn(){
  console.log(a)
  }
// 此时,a 和 fn 组成了闭包
复制代码

闭包的用途?

  1. 从外部读取函数内部的变量

  2. 将创建的变量的值始终保持在内存中

  3. 封装对象的私有属性和私有方法

闭包的优缺点是什么?

优点

  • 可以避免全局变量的污染

缺点

  1. 引用的变量可能发生变化

  2. this指向问题

  3. 内存泄露问题

分类:
前端
标签:
分类:
前端
标签: