什么是闭包?
闭包就是能够读取其他函数内部变量的函数,例如在JavaScript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数”。在本质上,闭包是将函数内部和函数外部连接起来的桥梁
闭包的优缺点:
优点:
1.保护函数内部变量安全
2.加强封装性,可以达到对变量的保护作用
3.逻辑连续,当闭包作为另一个函数调用的参数时,避免脱离当前逻辑而单独编写额外逻辑
4.方便调用上下文的局部变量
5.在内存中维持一个变量
缺点:
1.常驻内存,会增大内存使用量,使用不当容易造成内存泄漏
2.内存浪费(对闭包的使用不当会造成无效内存的产生)
应用场景:
1.封装
2.延迟执行
3.回调函数
4.记忆函数
5.柯里化