闭包
什么是闭包
一个函数可以访问另一个函数内部的变量就会形成闭包
闭包形成的条件
-
函数嵌套
-
函数引用了外部函数中的变量
闭包的作用
-
可以在函数外部访问函数内部的变量
-
可以让一个变量永久存在于内存当中(所以闭包会导致内存泄漏)
闭包的危害
-
内存泄露
-
可能会在函数外部修改函数局部变量的值
闭包和内存泄漏
一般来说,函数在执行的时候会创建一个执行上下文,函数执行完毕之后会销毁这个执行上下文。当函数返回了一个函数,且这个函数被全局变量所引用,那么外部函数的上下文就不会在执行完毕之后被销毁。
所以当我们调用完返回的函数(闭包被使用完)之后,需要将全局变量指向 null,让执行上下文可以被释放。
网友评论