最简单的闭包就是函数1包含函数2,函数2引用函数1的变量或方法,在函数1之外的环境引用函数2,这样函数2就会一直持有函数1作用域的引用,这就产生了闭包。
我们为什么会需要创建闭包和使用闭包呢?
以前写C语言和C++时,有时会需要一个全局变量来记录总数,这个变量能一直记录数字,不会因为重新运行而重新定义,这是因为这个全局变量会一直存在内存中,而闭包的作用就是能够让变量一直存在内存中,性质和全局变量一样,但可以避免像全局变量一样污染全局环境,闭包的变量只属于某个作用域,这样就减少了全局变量,减少了命名冲突。
当然闭包也有缺点,因为变量会一直存在内存中,所以会增大内存使用量。
闭包的三个特性:1。函数嵌套函数
2。函数内部可以访问外部的变量和参数
3。参数和变量不会被垃圾回收制回收