2013-05-20 34 views
3

我正在创建一个应用程序,其中有一个创建客户的页面。为此我写了下面的代码。如何使用jQuery/Javascript从内存中删除对象?

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

我想删除此对象。我该如何执行此操作?

+0

delete variableName; – GOD

+1

请注意,JavaScript的'delete'关键字不适用于从内存中删除内容,它仅用于从对象中删除属性。 [阅读文档](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/delete)。请注意'delete x;'将尝试删除全局命名空间对象中存在的属性'x'。 – ajp15243

+0

是全局变量还是本地变量 –

回答

8

设置customer = 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

0

递归销毁对象下面。使用Chrome堆快照测试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; 
     } 
    } 
}