闭包的使用-避免内存泄漏问题
基本使用
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 }