2011-02-22 62 views
0

如果我創建一個新的對象:將對象傳遞爲參數,垃圾回收?

var objA:Object = new Object; 

,然後我通過它變成一個類的實例:

var objB:Class = new B(objA); 

,這是我的毀滅B級的內部功能:

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

是否會銷燬objA或者是否只是銷燬對B類實例內部對象的引用?

回答

0

我不相信objA會被銷燬。引用本身(__objA)將被銷燬,但objA將繼續永遠生存,因爲變量__objA僅指向objA。

0

objA和__objA只是對由「新對象」創建的對象的引用。只要至少有一個引用它仍然存在,該對象就不會被銷燬。

例如,如果objA是方法的局部變量,那麼只要方法結​​束執行,objA引用就不再存在。當然,如果該方法有任何延續(匿名事件偵聽器)。如果是這樣的話,objA會留下來,直到聽衆被刪除。