什么是闭包
在js中变量的作用域属于函数作用域, 在函数执行完后,作用域就会被清理,内存也会随之被回收,但是由于闭包函数是建立在函数内部的子函数, 由于其可访问上级作用域,即使上级函数执行完, 作用域也不会随之销毁, 这时的子函数(也就是闭包),便拥有了访问上级作用域中变量的权限,即使上级函数执行完后作用域内的值也不会被销毁。
闭包解决了什么问题
- 可以读取函数内部的变量
- 可以将变量的值始终保存在内存中,不会再函数被调用后清除
- 封装getter 和 setter 方法
闭包缺点
- 闭包会导致函数内的变量都存在内存中,滥用闭包会导致内存消耗过大,导致网页性能问题,解决方法是在退出函数之前,将不再使用的局部变量全部删除。
- 内存泄漏问题
感谢观看,对于本篇文章有任何问题,可以在评论区评论!