文章目录
对于闭包的定义
1.闭包就是能够读取其他函数内部变量的函数;
2.闭包是一种私有化变量的机制,函数执行时形成私有作用域,保护私有变量不受外界影响;
3.内部函数可以使用外部函数的参数和变量,函数和变量不会被垃圾回收机制回收;
4.一般情况下,在我们认知当中,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。
闭包有什么优点
1.让外部访问函数内部变量成为可能;
2.局部变量会常住在内存中,可以避免访问全局变量,防止全局变量污染;
3.能够自主去操控作用域的数据空间。
闭包有什么缺点
使用闭包会消耗大量内存,而且会造成内存泄漏(有一块内存空间被长期占用,而不被释放)
解决方法是退出闭包时把不用的内部的变量删除即可。