Nulling对象作为参数传递,垃圾收集?

时间:2011-02-22 21:41:00

标签: actionscript garbage-collection

如果我创建一个新对象:

var objA:Object = new Object;

然后我将它传递给一个类的实例:

var objB:Class = new B(objA);

这是我在B类中的销毁功能:

public function destroy():void
{
  __objA = null // __objA being just objA
}

这会破坏objA还是只会破坏对B类实例内部对象的引用?

2 个答案:

答案 0 :(得分:0)

我不相信objA会被摧毁。引用本身(__objA)将被销毁,但objA将继续存在,因为变量__objA仅指向objA。

答案 1 :(得分:0)

objA和__objA只是对“new Object”创建的对象的引用。只要至少有一个对象仍然存在,该对象就不会被销毁。

例如,如果objA是方法的局部变量,则只要方法完成执行,objA引用就不再存在。当然,除非方法有任何延续(匿名事件监听器)。如果是这种情况,objA会一直待在听众被删除之前。