我在数组中有很多显示对象,我不断添加并从舞台中删除。删除后,它们将不再使用。
考虑到displayObject不在显示列表中,并且没有事件监听器......如果我使用splice将其从数组中删除,它会被垃圾收集吗?
如果我先将对象置空,会更安全吗?
myArray[2] = null;
myArray.splice(2,1);
答案 0 :(得分:5)
只要没有对DisplayObject
的剩余引用,然后是,使用splice
将其从数组中删除,或者甚至只是将其设置为null
将允许它成为垃圾收集候选人。
更新:在从阵列中删除之前将项目设置为null
是多余的,并没有任何区别。
答案 1 :(得分:1)
如果您需要更好的性能,我建议您使用池而不是创建大量对象并将它们放在数组中。使用一些链表实现而不是splice()操作,这非常慢。