js闭包
一个函数在他自身内部定义的变量称为局部变量,这个变量只能在内部被调用,外部的其他函数是调用不了这个变量的。当有一个函数他的内部存在一个局部变量和另一个函数,这个内部函数对这个内部变量进行调用,这种行为就称为闭包。
function init() { let num = 2; function showNum() { console.log(num) }; showNum(); } init() // 2
那么我们用闭包来做什么呢?我们可以通过闭包去读取函数内部的局部变量,去进行操作,因为有指针指向这些函数,所以垃圾回收机制就对其不起作用了,这些变量会始终保留在这个函数中,但这存在一个缺点,就是在IE浏览器中使用闭包过多有可能会发生内存泄漏的问题,所以当我们想让垃圾回收机制对这些变量进行回收的话,就可以给内部调用这些局部变量的函数设置值为null。

浙公网安备 33010602011771号