JavaScript性能优化 - 避免闭包陷阱

604 阅读1分钟

闭包特点

  • 外部具有指向内部的引用

  • 在外部作用域访问内部作用域的数据

    function foo () {
      var name = 'leo';
      function fn () {
        console.log(name)
      }
      return fn
    }
    var a = foo()
    a()
    

关于闭包

  • 闭包是一种强大的语法

  • 闭包使用不当很容易出现内存泄漏

  • 不要为了闭包而闭包

    <html>
    <body>
      <button id="btn"> Add </btton>
      <script>
        function foo () {
          var el = document.getElementById('btn')
          el.onClick = function () {
            console.log(el.id)
          }
          el = null // 避免闭包陷阱
        }
        foo()
      </script>
    </body>
    </html>