如何使用 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
我想删除这个对象。我该怎么做??
【问题讨论】:
删除变量名; 请注意,javascript 的delete
关键字不是用于从内存中删除内容,它仅用于从对象中删除属性。 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秒一次?