如何使用 jQuery/Javascript 从内存中删除对象? [复制]

Posted

技术标签:

【中文标题】如何使用 jQuery/Javascript 从内存中删除对象? [复制]【英文标题】:How to delete an object from memory using jQuery/Javascript? [duplicate] 【发布时间】:2013-05-14 15:15:03 【问题描述】:

我正在创建一个应用程序,其中有一个用于创建客户的页面。为此,我编写了以下代码。

customer=new MobileApp.CustomerViewModel(); //for creating new customer

我想删除这个对象。我该怎么做??

【问题讨论】:

删除变量名; 请注意,javascriptdelete 关键字不是用于从内存中删除内容,它仅用于从对象中删除属性。 Read the docs。请注意,delete x; 将尝试删除存在于全局命名空间对象中的属性 x 是全局变量还是局部变量 【参考方案1】:

递归销毁对象,如下所示。用 chrome heap 快照测试了 javascript 对象在内存中被清除

function destroy(obj) 
    for(var prop in obj)
        var property = obj[prop];
        if(property != null && typeof(property) == 'object') 
            destroy(property);
        
        else 
            obj[prop] = null;
        
    

【讨论】:

【参考方案2】:
delete customer;

了解delete

delete 运算符从对象中删除属性。由于customer是全局对象的属性,不是变量,所以可以删除

注意:customer 应该是全局的

customer=new MobileApp.CustomerViewModel();
delete customer; // Valid one

var customer1=new MobileApp.CustomerViewModel();
delete customer1; // Not a valid one

示例Fiddle

【讨论】:

这个不回答问题,delete不影响内存:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…【参考方案3】:

设置 customer = null 将使垃圾收集器启用此功能,因为没有对该对象的其他有效引用。

【讨论】:

以上是关于如何使用 jQuery/Javascript 从内存中删除对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 javascript 中使用正则表达式从内到外获取 pharanteses 之间的全部内容

如何使用 Jquery/Javascript 按下键盘 [重复]

如何使用 jquery\javascript 从 firefox 浏览器打印 PDF 文档?

如何使用jQuery / javascript将事件处理限制为每X秒一次?

如何使用 jQuery / JavaScript 解析 JSON 数据?

如何使用 jQuery / JavaScript 解析 JSON 数据?