当前位置

首页 > 综合知识 > js闭包的理解

js闭包的理解

推荐人: 来源: 秒知社 阅读: 1.92W 次

js闭包的理解

闭包是js中的一个特点也是一个知识难点,在定义一个全局变量的时候,如果在不知道前面的代码的情况下,不小心定义了同一个变量名,则前面的代码运行结果会受到影响,为了避免这种影响,于是就有了闭包。
闭包可以解决全局变量污染的问题,特点是在一个函数中声明变量(此时的变量是局部变量,不影响全局变量),同时在该函数中再定义一些函数,闭包的特点就是函数套函数:在闭包中声明变量,里面的值不会受到函数外的同名变量影响,但闭包的缺点是内存泄漏。
程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出(内存不够用)。
函数只有在调用时会发挥作用,不调用是会被释放内存的;但是看到上面的闭包函数作为一个值给了一个全局变量,这种情况下是清不掉的,这就造成内存泄露。
这样的闭包函数多了,最后的结果就是内存溢出。