1.背景
在全局中使用函数内部变量实现一些操作。需要说下全局环境和局部环境,全局指js执行的最外层级,也即window的第一子级。局部环境指函数所在区域。
2.概念
充分条件:
(1)函数外部使用函数内部变量,局部变量可永久保存。 原因:变量被引用后不能被回收。
(2)函数中有一嵌套函数使用其父级变量,嵌套函数作为返回值。
3.使用
计数器实现,参见菜鸟网站。https://www.runoob.com/js/js-function-closures.html
4.解决问题
(1)提供全局使用局部变量的一种方式。
(2)防止全局变量被污染。
5. 作用域链
每个变量在创建时会生成作用域链。全局环境的作用域链为全局-》window。 局部环境的作用域链为 局部->全局-》window。若为多层嵌套函数,则可是局部->局部-》局部....->全局->window。