谁知道,javascript 如何彻底删除一个对象?
js要大量删除,忝加元素,removeChild();只是从DOM树中移除,内存中并不能释放对象,...
js要大量删除,忝加元素,
removeChild();只是从DOM树中移除,内存中并不能释放对象, 展开
removeChild();只是从DOM树中移除,内存中并不能释放对象, 展开
3个回答
展开全部
方法如下:
1、在最开始的时候尝试使用了delete运算符,但在查询数组长度的时候发现其实这种方法并不是彻底删除元素,而是删除它的值,但仍会保留空间。
2、查询运算符delete我们知道它只是将该值置为undefined,而不会影响数组长度,即将其变为稀疏数组。
3、了解及此,也许想着可以将删除点之后的元素各往前移动1个单位,实现彻底剔除该元素,但在JS方法中我们可以查到一种更加简便的方式:splice() 方法。
4、删除后test.length变为2,即可。
一、电脑不能启动的原因
系统不承认硬盘
此类故障比较常见,即从硬盘无法启动,从A盘启动也无法进入C盘,使用CMOS中的自动监测功能也无法发现硬盘的存在。这种故障大都出现在连接 电缆 或IDE口端口上,硬盘本身的故障率很少,可通过重新插拔硬盘电缆或者改换IDE口及电缆等进行替换试验,可很快发现故障的所在。
如果新接上的硬盘不承认,还有一个常见的原因就是硬盘上的主从条线,如果硬盘接在IDE的主盘位置,则硬盘必须跳为主盘状,跳线错误一般无法检测到硬盘。
展开全部
没有这个必要吧,除非你已经为它分配了内存。
比如
<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了
比如
<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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
obj = null; 把要删除的对象赋null值就行了,下一次垃圾回就会回收它,也就尽快释放了对象了。
追问
好像垃圾回收器自动回收从DOM树中移除的节点对象?
追答
按理说,从DOM树中移除的节点对象失去了引用,应该会被垃圾回收器自动回收,如果你真的很在乎性能的话,就赋null值吧
你说的这个问题我在网上搜了很多资料,都说的是这各情况发生在IE低版本上,高版本及其它浏览器应该不存在吧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询