JavaScript对象删除

3
请原谅我如果问题不太清楚。
我正在使用JavaScript创建一个DOM元素,为此我创建了一个对象(obj = {}),并逐步填写属性,其中之一是要创建的DOM元素。一旦元素被创建并添加到文档中,我就不需要对象占用内存空间,所以我想应该将其删除。
我该如何做呢?
谢谢。
3个回答

3
以下是方法:
以下是如何操作的步骤:
my_var = null;

//or remove it
delete my_var;

如果一个对象仅在函数中通过“this”引用,那么“delete this”的效果似乎不起作用。 - salmane
我不确定他是否提到它是否被引用。 - Sarfraz
我认为你不能在其成员函数内删除一个对象。保留对它的引用,并在其他地方删除它。 - user181351
5
有一个关于delete的常见误解:它不像C++中的delete,即它不会触发对象的销毁;它所做的仅仅是从对象中移除属性 - 它根本不适用于局部变量;delete foo.bardelete foo[42]是可以的,而如果foo是一个局部变量,delete foo什么也不会做(甚至在严格模式下的ECMAScript 5中会抛出语法错误)。 - Christoph

3

一旦对象在DOM中存在,它就会存在于内存中,而持有它的obj属性实际上是持有它的引用,而不是副本。因此,在我看来,保留作为obj属性的引用所需的内存应该是可以忽略不计的。在这种情况下,我将不担心删除它。


如果您正在使用jQuery插件,例如[DataTables](http://www.datatables.net),那么它确实很重要:例如,如果您打算重新初始化这样的表格,则没有干净的方法可以做到这一点。如果您对此控件及其卸载问题的更多细节感兴趣,请参见[此处](http://datatables.net/forums/discussion/1244/how-to-re-initialize-a-datatable-reload-it-from-scratch/p1)。 - Matt

0
如果您将对象定义为本地对象,例如:
var obj = {}
它将在函数结束时自动变为未定义。

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