如何使用jQuery/Javascript从内存中删除一个对象?

4
我正在创建一个应用程序,其中有一个页面是用于创建客户的。为此,我编写了以下代码。
customer=new MobileApp.CustomerViewModel(); //for creating new customer

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

删除 variableName 变量; - Akshay Deep Giri
2
请注意,JavaScript 中的 delete 关键字并不是用于删除内存中的内容,而仅用于从对象中删除属性。阅读文档。请注意,delete x; 将尝试删除存在于全局命名空间对象中的属性 x - ajp15243
它是一个全局变量还是局部变量? - Arun P Johny
3个回答

17

customer = null 设置为null,可以使该对象能够被垃圾收集器回收,前提是没有其他有效的引用指向这个对象。


3
递归地按照下面的示例销毁对象。通过使用 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;
        }
    }
}

3
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

示例 代码片段


这并没有回答问题,而且删除并不影响内存:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/delete - tog22

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接