闭包

1. 闭包的介绍
函数调用完,函数内定义的变量都会被销毁,但有时候我们需要保存函数内的这个变量,每次在这个变量的基础上完成一系列的操作

闭包的定义:

在函数的嵌套下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,那么这个使用外部函数变量的内部函数称为闭包

2. 闭包的构成条件


在函数嵌套的前提下
内部函数使用了外部函数的变量、参数
外部函数返回了内部函数

3. 闭包示例

# 定义一个外部函数
def func_out():
a = 1

# 定义一个内部函数
def func_inner(b):
sum = a + b
print("结果是:", sum)
return func_inner


# 获取闭包对象,这里的new_func就是func_inner,也就是闭包
new_func = func_out()
# 执行闭包
new_func(1)
new_func(2)

 

4. 闭包的作用

  • 闭包可以保存外部函数内的变量,不会随着外部函数调用完而销毁

注意:

  • 由于闭包引用了外部函数的变量,则外部函数的变量就没有及时释放,会消耗内存

5. 闭包的用途

闭包最大的两个用途:使得外部能够访问函数内部的变量;第二个就是让这些变量的值始终保存在内存中,不会在goPlat()调用后被清除。

 

6. 使用闭包的注意点


由于闭包会使得函数内部的变量保存在内存中,内存消耗很大,不能滥用闭包,否则会引起网页性能问题,在IE中导致内存泄漏,解决方法时:在退出函数之前,将不使用的局部变量删除。
闭包会在父函数外部改变父函数内部局部变量的值,所以如果你把父函数当做对象使用,把闭包当成公共的方法,把内部变量当成私有属性,这时一定要小心,不要随意改变父函数内部变量的值。

posted @ 2022-05-12 21:55  LLL啊啊啊  阅读(39)  评论(0)    收藏  举报