闭包(closure)

1、什么是闭包:

即重用一个变量,又保护变量不被污染的一种编程方法。
闭包的本质:外层函数的作用域对象,被内层函数对象引用着,无法释放。这个外层函数的作用域就是闭包对象。

2、实现闭包的步骤

3步:

  1. 外层函数包裹要保护的变量和内层函数,内层函数一定要使用了外层函数的局部变量
  2. 外层函数将内层函数抛出到外部 (return)
  3. 调用者调用外层函数,获得返回的内层函数对象,保存在变量中。并反复使用。
    闭包(closure)

3、闭包是如何形成的:

外层函数的作用域对象,被内层函数对象引用着,无法释放。

4、 闭包的缺点:

  1. 比普通函数占用更多的内存,多占用父母的函数作用域对象
  2. 闭包不会自动释放,可能造成内存泄漏。
    因此: 使用完闭包后,如果不再使用了,要手动释放闭包: pay=null;