函数有两个阶段
定义阶段:
1,开辟一个内存空间
2,将函数体内一模一样的代码放到空间内
3,将存储空间的地址返回给函数名
调用阶段:
4,在内存中开辟一个执行空间
5,将函数存储空间中的代码拿出来放在刚刚开辟的执行空间中执行
6,执行完毕,执行空间被销毁
闭包:利用函数执行空间不被销毁的逻辑
闭包是函数的一种高级用法,有三个条件,
一,有不被销毁得空间,
二,返回一个复合数据类型,
三,内部函数引用了外部函数的变量
闭包的优缺点
优点:
一,增加了变量的生命周期
二,内部函数可以引用外部函数的变量
三,不会使变量污染全局
缺点:
一,会占用内存,导致内存溢出
二,只有通过闭包才能访问变量,比较麻烦