闭包(closure)
1、什么是闭包:
即重用一个变量,又保护变量不被污染的一种编程方法。
闭包的本质:外层函数的作用域对象,被内层函数对象引用着,无法释放。这个外层函数的作用域就是闭包对象。
2、实现闭包的步骤
3步:
- 外层函数包裹要保护的变量和内层函数,内层函数一定要使用了外层函数的局部变量
- 外层函数将内层函数抛出到外部 (return)
- 调用者调用外层函数,获得返回的内层函数对象,保存在变量中。并反复使用。
3、闭包是如何形成的:
外层函数的作用域对象,被内层函数对象引用着,无法释放。
4、 闭包的缺点:
- 比普通函数占用更多的内存,多占用父母的函数作用域对象
- 闭包不会自动释放,可能造成内存泄漏。
因此: 使用完闭包后,如果不再使用了,要手动释放闭包: pay=null;