一.闭包的定义:
闭包是指有权访问另⼀个函数作⽤域中的变量的函数。
二.特点
在函数执行结束后不能销毁,意思就是一般在函数执行结束后在下一次调用时都会是一个全新的函数以前执行的都会被销毁,而闭包不会被销毁,它会接着上一次的结果继续执行下去。
三。闭包的优缺点
1.闭包的缺点:闭包的变量不会被垃圾回收机制回收,会一直在内存里。
2.闭包的优点:
2.1.可以永久的常驻内存(保留每次运行的结果并替换上一次执行的结果)
2.2不能从外部去干扰改变量,保证了数据的安全
3.闭包的使用场景
用来做关键数据的缓存作用
四。闭包的产生
1.函数嵌套函数
2.内部函数引起内部函数的变量或者参数,并使用return返回了引用该变量或者参数
例:
不是闭包的函数

是闭包的函数

但是要注意这里不能使用outer()()因为要定义一个变量去记录(装)outer函数里面的inner函数体与运行的结果(这里的结果运行一次会替换上一次运行的结果)
例:

每次重新引用函数的时候闭包也会是全新的它们互不影响,哪怕每次调用都是交叉的结果都不会有影响。
