【问题标题】:Does this code lead to memory leak in JavaScript这段代码是否会导致 JavaScript 中的内存泄漏
【发布时间】:2019-04-14 11:35:17
【问题描述】:

请看下面的代码:

universe.makeFramework = function()
{
    const fw = Framework();
    fw.version = 0;
    fw.uni = this;
    universe.fws.add( fw ); // keep a reference of framework in a set
    fw.realise( universe.ctrl );
    idToObj.set( nextId, fw ); // keep a reference of framework in a map
    ++nextId;
}

基本上,我有一个可以有一个或多个框架对象的宇宙。在此函数 (makeFramework) 中,我创建了一个新框架并将其引用保存在一张地图和一组中。

现在假设我想删除这个框架。所以我必须从地图、集合和 DOM 中删除引用。够了吗?我应该担心const fw 吗?我应该执行以下操作吗?

universe.makeFramework = function()
    {
        let fw = Framework();
        fw.version = 0;
        fw.uni = this;
        universe.fws.add( fw ); // keep a reference of framework in a set
        fw.realise( universe.ctrl );
        idToObj.set( nextId, fw ); // keep a reference of framework in a map
        ++nextId;
        fw = undefined;
    }

【问题讨论】:

    标签: javascript memory-leaks


    【解决方案1】:

    不需要。垃圾收集器将在 makeFramework 完成运行后处理 fw 常量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      相关资源
      最近更新 更多