这可能是一个愚蠢的问题。我想我已经知道了答案,请澄清一下。如果在varible1中声明一个对象,然后将该值传递给varible2。如果您决定将varible2置为null,那么也只会杀死引用或对象本身。我想说不,但是再说一遍,你所做的一切都是为了自己的参考,也影响了记忆中的空间。
这是我班上的2个变量。
private var objects:Array;
private var viewableObjects:Array;
以上是类变量。稍后在我的代码中,我将一个对象添加到对象数组
objects[0][4] = new Enemy1();
当我追踪时,我得到以下
[object Enemy1]
然后我将它添加到可查看对象数组
viewableObjects.push(objects[0]);
接下来我删除它。这是后来的事情。我循环遍历我在第一个元素中看到“i”的代码。
viewableObjects[i][4] = null;
当我追踪相同的第一个变量“objects [0] [4]”时......它显示
null
答案 0 :(得分:2)
设置对null
的引用不会影响对象,除非它是对该对象的最后一次引用(在这种情况下,它使其符合垃圾回收的条件)
您可能想要了解更多关于参考如何工作的内容。
答案 1 :(得分:1)
在你的情况下,归零变量2只删除引用,使用的内存仍然是相同的(几乎,引用确实需要一点点),你刚刚减少了引用计数。在删除所有引用,或者所有引用都被隔离,并且未在应用程序中使用之前,它不会被清除。 ie:引用它的唯一对象可用于垃圾收集。