闭包的使用-避免内存泄漏问题

基本使用
function outer() {
        let num = 1;
        const inner = function () {
          console.log("num:", num);
        };
        return inner;   //inner 就是一个闭包函数,因为他能够访问到outer函数的作用域
      }
      let inner = outer();  //获得inner闭包函数
      inner(); //1
 这段代码可能会导致内存泄漏
window.onload = function (){
            var el = document.getElementById('id')
            el.onclick = function(){
                 console.log(el.id);
            }
        }

 解决方法

 window.onload = function (){
            let el = document.getElementById('id')
            let id = el.id //解除循环引用
            el.onclick = function(){
                console.log(id);
            }
            // 在退出函数前,将不使用的局部变量赋值为null
            el = null
        }
posted @ 2022-12-11 22:07  MetX  阅读(78)  评论(0编辑  收藏  举报