闭包
1、什么是闭包 优缺点
- 原理: 一个函数可以访问外部函数的变量就形成了闭包
- 优点: 可以延长函数的生命周期 也可以叫做延长变量作用域
- 缺点 : 造成内存泄漏
- 常见的应用场景: 实现数据私有
- 注意点:外部函数中,一般需要return 引用(内存才不会被释放)
function fn() {
let const =0
function inner () {
const++
console.log('函数被调用了'+const + '次')
}
return inner
}
let result = fn()
result()
result()
result()
// 标记清除: 从根部,全局出发,访问不到(无法触及)的内存空间,就会被自动回收
return = null // 这个很关键
// 释放内存,断开了对于之前内部函数的引用,对应的缓存的变量内容也会被释放掉