本篇博客是作为个人自学记录,如有不足之处,请批评指正。
什么是闭包?
- 如果一个函数用到了外部的变量,那么这个函数加这个变量就叫做闭包。
代码如下:
let a = 1
function fn(){
console.log(a)
}
// 此时,a 和 fn 组成了闭包
闭包的用途?
-
从外部读取函数内部的变量
-
将创建的变量的值始终保持在内存中
-
封装对象的私有属性和私有方法
闭包的优缺点是什么?
优点
- 可以避免全局变量的污染
缺点
-
引用的变量可能发生变化
-
this指向问题
-
内存泄露问题