闭包/造成内存泄露的原因/垃圾回收机制

184 阅读1分钟
  • 闭包

    • 概念:内部函数访问其外部函数作用域(函数嵌套函数)

    • 作用:实现变量的私有化

    • 使用场景:

      • 循环里面的异步代码打印索引值会有bug,用闭包可以解决(不用说)
      • 防抖和节流
      • 柯里化(把一个函数从多参函数转换成单参函数,好处就是可以实现参数复用)
    • 缺点: 会导致内存泄露

    • 解决办法:闭包用完赋值为null

  • 造成内存泄露的原因

    • 闭包 ` 全局变量
  • 垃圾回收机制

    • 引用计数法:一个值被变量用了+1,如果引用次数为0就可以被当作垃圾回收掉 缺点:如果是相互引用(嵌套引用)不能被回收

    • 标记清除法: 从根出发,如果从根部能访问到某个变量,就说明这个变量有用的,具备可达性,如果变量访问不到的,就被标记成一个垃圾,然后就会回收掉