闭包
2019-02-27 本文已影响0人
Lucy_b1dc
是什么:是保护并重用局部变量的机制
为什么用闭包:
全局变量:优点是随处可用,可重用,但容易被污染
局部变量:优点是仅在函数内用,不容易被污染,但不能被重用
什么时候使用闭包:
希望重用一个变量,又不希望被污染时
如何使用:(3步)
- 定义受保护的局部变量
- 定义内层函数,专门用来操作受保护的变量
- 定义外层函数,将受保护的变量和操作变量的函数封装起来,外层函数将内层函数返回到外部
判断:
1.先找受保护的变量和内层函数,画简图
2.同一次外层函数调用,返回的多个内层函数,共享同一个闭包变量
3.多次外层函数的调用,会创建多个闭包,多个闭包之间彼此毫无关系
闭包会占用内存,解决方法是:使用完之后立即释放
释放方法:getNum=null
会使内层的小函数对象释放,进而导致outer的AO被释放,被占用的内存就会被释放