Обнулить объект, переданный функции - PullRequest
1 голос
/ 06 октября 2010

У меня следующая проблема с объектами в actionscript3:

var o:Object = new Object();
destroyObject(o);
trace(o); // [object Object]

function destroyObject(obj:Object):void{
   obj = null; 
   trace(obj); // null
}

Поскольку объекты передаются по ссылке в AS3, я предполагаю, что предыдущий код изменится с o на null, но это не так. Может ли кто-нибудь объяснить мне «почему»?

Спасибо.

1 Ответ

2 голосов
/ 06 октября 2010

Объекты передаются по ссылке, но сама ссылка передается по значению.Оператор obj = null устанавливает для параметра obj значение null, что означает, что obj больше не ссылается на объект, но сам объект все еще присутствует и на него все еще ссылается переменная o, когда возвращается destroyObject.

...