如何形成闭包
满足以下2个条件:才形成闭包
1.内部要在此嵌套一个函数,嵌套的函数引用外部的变量
2.嵌套的函数内部可以引用函数外部的参数和变量

为什么要使用闭包
1.解决了外部无法使用内部变量
2.解决了全局变量污染问题
这里就衍生了一个叫自由变量
自由变量就是函数内部使用外部的变量,这个变量就是自由变量
注:跨域的变量都是自由变量,即声明的和使用不在同一个作用域。

它的好处是
1.保护函数内的变量安全,也防止变量在其他的环境发生声明冲突。
2.延长了变量的生命周期。
坏处
1.被引用的私有变量不能自动被销毁