【问题标题】:Clear object memory in javascript在javascript中清除对象内存
【发布时间】:2012-05-18 07:57:21
【问题描述】:

我在我的 Web 应用程序中使用通用接口,并且我有 javascript 类和方法来为我的类创建对象。我想在不使用对象时清除内存。 我的问题是如何清除对象的内存。

我尝试过使用 'obj = null;'和'删除 obj;'。两者都没有按预期工作。

有没有办法在 JavaScript 或通用接口中清除对象和对象内存。

-斯里达尔

【问题讨论】:

  • Javascript 已经有一个垃圾收集器,可以清除内存中所有未使用的引用。
  • 我想这个问题已经被问到了,请查看下面的链接stackoverflow.com/questions/5115054/…

标签: javascript tibco-gi


【解决方案1】:

尝试设置为null

var a = new className();
alert(a);

a = null;
alert(a);

【讨论】:

    【解决方案2】:

    您可以使用Self-Invoking Functions

    Self-invoking functions are functions who execute immediately, and create their own closure. Take a look at this:
    
    (function () {
        var dog = "German Shepherd";
        alert(dog);
    })();
    alert(dog); // Returns undefined
    
    so the dog variable was only available within that context
    

    编辑
    如果内存泄漏与 DOM 有关,here 写了如何管理它。所以,我试着这样解决:

    var obj = {};//your big js object
    //do something with it
    
    function clear() {
        var that = this;
        for (var i in that) {
            clear.call(that[i]);
            that[i] = null;
        }
    }
    
    clear.call(obj);//clear it's all properties
    obj = null;
    

    【讨论】:

    • 我对这些东西非常了解。但我想明确地释放内存。因为,我的对象是全局使用的,当这些对象不再需要时,必须清除内存。
    【解决方案3】:

    你不能。只要确实删除了每个引用(例如,设置为null,正如许多人所建议的那样),它何时运行以及何时收集它们完全取决于 GC。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-28
      • 2016-04-25
      • 2011-07-04
      • 1970-01-01
      • 2013-04-28
      • 2011-02-22
      • 1970-01-01
      • 2021-04-17
      相关资源
      最近更新 更多