全局变量和局部变量
全局变量可以重复使用但容易被污染,局部变量仅函数内可用,不会被污染但无法复用;
闭包概念
能够读取其他函数内部变量的函数
定义在函数内部的函数,内部函数持有外部函数内变量的引用
重用一个变量,又保护变量不被污染
如何使用
1. 用外层函数包裹要保护的变量和内层函数。
2. 外层函数将内层函数返回到外部。
3. 调用外层函数,获得内层函数的对象,保存在外部的变量中——形成了闭包。
外层函数调用后,外层函数的函数作用域(AO)对象无法释放,被内层函数引用着。
或
在一个函数中return一个使用外部变量的函数,原理是内部可以使用作用域外的变量,调用外部函数后,内部函数引用了外部变量,所以这个变量不会在使用后被销毁或回收。
优缺点
优点:可以重复一个不会被污染的变量;(工厂模式有使用)
缺点:占用内存,解决,使用完即使释放,将变量赋值为null
应用
setTimeout不能传参
封装能访问私有函数和私有变量的公共函数
工厂模式
https://blog.csdn.net/qq_21132509/article/details/80694517
https://www.cnblogs.com/jiajialove/p/9049612.html