【发布时间】:2010-01-18 10:09:08
【问题描述】:
如果我的问题没有多大意义,请原谅。
我正在使用 javascript 创建一个 dom 元素
为此,我创建了一个对象 (obj ={}) 并随时填写属性,其中之一是要创建的 dom 元素。一旦创建了元素并将其附加到文档中,我就不需要该对象占用内存中的任何空间,所以我想我应该删除它。
我该怎么做呢?
谢谢
【问题讨论】:
标签: javascript
如果我的问题没有多大意义,请原谅。
我正在使用 javascript 创建一个 dom 元素
为此,我创建了一个对象 (obj ={}) 并随时填写属性,其中之一是要创建的 dom 元素。一旦创建了元素并将其附加到文档中,我就不需要该对象占用内存中的任何空间,所以我想我应该删除它。
我该怎么做呢?
谢谢
【问题讨论】:
标签: javascript
对象一进入 DOM 就将存在于内存中,并且持有它的 obj 属性实际上持有对它的引用,而不是副本。据我所知,将引用保留为 obj 的属性所需的内存应该可以忽略不计。在这种情况下,我根本不用担心删除它。
【讨论】:
方法如下:
my_var = null;
//or remove it
delete my_var;
【讨论】:
delete 所做的事情有一个普遍的误解:它不像C++'delete,即它不会触发对象销毁;它所做的只是从对象中删除属性——它根本不适用于局部变量; delete foo.bar 和 delete foo[42] 没问题,而如果 foo 是局部变量,delete foo 将什么也不做(甚至在严格模式的 ECMAScript 5 中抛出语法错误)
如果您将对象定义为类似语言环境
var obj ={}
它会在函数结束时自动取消定义。
【讨论】: