创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个 函数的局部变量,利用闭包可以突破作用链域,也就是说,闭包让你可以在一个内层函 数中访问到其外层函数的作用域
使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染, 缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。在js中, 函数即闭包,只有函数才会产生作用域的概念
闭包使用场景:
比如常见的防抖节流
使用闭包可以在 JavaScript 中模拟块级作用域
闭包可以用于在对象中创建私有变量