谁知道,javascript 如何彻底删除一个对象?

js要大量删除,忝加元素,removeChild();只是从DOM树中移除,内存中并不能释放对象,... js要大量删除,忝加元素,

removeChild();只是从DOM树中移除,内存中并不能释放对象,
展开
 我来答
西西哩的小马甲
2018-03-31 · TA获得超过10.1万个赞
知道大有可为答主
回答量:39
采纳率:100%
帮助的人:1.8万
展开全部

方法如下:

1、在最开始的时候尝试使用了delete运算符,但在查询数组长度的时候发现其实这种方法并不是彻底删除元素,而是删除它的值,但仍会保留空间。

2、查询运算符delete我们知道它只是将该值置为undefined,而不会影响数组长度,即将其变为稀疏数组。

3、了解及此,也许想着可以将删除点之后的元素各往前移动1个单位,实现彻底剔除该元素,但在JS方法中我们可以查到一种更加简便的方式:splice() 方法。

4、删除后test.length变为2,即可。

一、电脑不能启动的原因

系统不承认硬盘

此类故障比较常见,即从硬盘无法启动,从A盘启动也无法进入C盘,使用CMOS中的自动监测功能也无法发现硬盘的存在。这种故障大都出现在连接 电缆 或IDE口端口上,硬盘本身的故障率很少,可通过重新插拔硬盘电缆或者改换IDE口及电缆等进行替换试验,可很快发现故障的所在。

如果新接上的硬盘不承认,还有一个常见的原因就是硬盘上的主从条线,如果硬盘接在IDE的主盘位置,则硬盘必须跳为主盘状,跳线错误一般无法检测到硬盘。

百度网友a19d193
2013-05-10 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1442万
展开全部
没有这个必要吧,除非你已经为它分配了内存。
比如
<div id="test"></div>
document.getElementById('test').parentNode.removeChild(document.getElementById('test'));
这种不需要释放,相对的
var obj = document.getElementById('test');
obj.parentNode.removeChild(obj);
这个就需要了,这样删 delete(obj);
现在obj是undefined了
更多追问追答
追问
delete 只能删除对象的属性方法,哪能直接删除对象?
追答
你测试了吗?哪个文档说js的delete函数是删除对象的属性和方法的?自己测试下面的代码。
var obj = 5;
alert obj; //5
obj = null;
alert(obj);//null
delete(obj);
alert(obj);//此时直接抛出异常,Reference Error: obj is not defined
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Onewarden
2013-05-10 · TA获得超过327个赞
知道小有建树答主
回答量:145
采纳率:100%
帮助的人:142万
展开全部
obj = null; 把要删除的对象赋null值就行了,下一次垃圾回就会回收它,也就尽快释放了对象了。
追问
好像垃圾回收器自动回收从DOM树中移除的节点对象?
追答
按理说,从DOM树中移除的节点对象失去了引用,应该会被垃圾回收器自动回收,如果你真的很在乎性能的话,就赋null值吧

你说的这个问题我在网上搜了很多资料,都说的是这各情况发生在IE低版本上,高版本及其它浏览器应该不存在吧。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式