js闭包

一个函数在他自身内部定义的变量称为局部变量,这个变量只能在内部被调用,外部的其他函数是调用不了这个变量的。当有一个函数他的内部存在一个局部变量和另一个函数,这个内部函数对这个内部变量进行调用,这种行为就称为闭包。

function init() {
      let num = 2;

      function showNum() {
        console.log(num)
      };
      showNum();
    }
    init() // 2

那么我们用闭包来做什么呢?我们可以通过闭包去读取函数内部的局部变量,去进行操作,因为有指针指向这些函数,所以垃圾回收机制就对其不起作用了,这些变量会始终保留在这个函数中,但这存在一个缺点,就是在IE浏览器中使用闭包过多有可能会发生内存泄漏的问题,所以当我们想让垃圾回收机制对这些变量进行回收的话,就可以给内部调用这些局部变量的函数设置值为null。

posted @ 2020-11-19 01:24  冰喉大哥  阅读(57)  评论(0)    收藏  举报