Skip to content

什么是内存泄漏?什么原因会导致呢?

Posted on:2024年8月10日 at 17:05

内存泄露的解释:程序中己动态分配的堆内存由于某种原因未释放或无法释放。

内存泄露的几种场景

// main.js
// 场景1
function a() {
  b = 10;
}
a();
b++;

// 场景2
setTimeout(() => {
  console.log(b);
}, 1000);
function closuer() {
  const b = 0;
  return (c) => b + c;
}

const render = closuer();

render();
render = null; // 手动设置为null,GC会自己去清除

function addEvent (){
 const node =  document.getElementById('warp');
    node.addEventListener('touchmove',()=>{
        console.log('In Move');
    })
}

const onTouchEnd = (){
   const node =  document.getElementById('warp');
   node.
}

useEffect(()=>()=>{
     const node =  document.getElementById('warp');
     node.removeEventListener('touchmove');
}) // 类似react 生命周期函数: componentWillUnmount
render(<div id='warp' onTouchEnd={onTouchEnd}>
 // code...
</div>)
原文转自:https://fe.ecool.fun/topic/b9bd9552-5748-45b1-88a8-f36e45f6261f