什么是:既重用变量又保护变量不被污染的一种机制
为什么:
全局变量:优:可重用。缺:随处可用
局部变量:优:仅函数内可用,不会污染全局。缺:不可重用
何时:今后只要既重用一个变量又保护变量不被污染时
如何:3步
用外层函数包裹要保护的变量和操作变量的函数
外层函数将内层函数的对象返回到外部
使用者调用外层函数获得内层函数对象
形成闭包的核心原因:外层函数的作用域对象(AO)无法释放,被内层函数对象引用着
简图:2步
1.找受保护的变量,并确定其最终值
2.找使用变量的内层函数对象,只有内层函数才能使用受保护的变量
tips:多次调用外层函数会形成多个闭包,每个闭包间不会相互影响
闭包的缺点:
比普通的函数占用更多的内存空间
解决:闭包不在使用要及时释放
如何释放:将引用内存函数对象的变量赋值为