2

我在一个数组中有很多显示对象,我不断地在舞台上添加和删除。删除后,它们不再使用。

考虑到 displayObject 不在显示列表中,并且没有事件侦听器......如果我使用 splice 从数组中删除它,它会被垃圾收集吗?

如果我先将对象清空会更安全吗?

myArray[2] = null;
myArray.splice(2,1);
4

2 回答 2

5

只要没有对DisplayObjectthen yes 的剩余引用,使用 将其从数组中删除splice,甚至只是将其设置为null将允许它成为垃圾收集的候选对象。

更新:将项目设置为null从数组中删除之前是多余的,不会有任何区别。

于 2011-10-09T06:56:47.993 回答
1

如果您需要更好的性能,我建议您使用池而不是创建大量对象并将它们放入数组中。使用一些链表实现而不是 splice() 操作,这真的很慢。

于 2011-10-09T23:06:59.830 回答