传递给函数的Nullify对象

时间:2010-10-05 23:49:31

标签: flash actionscript-3 pass-by-reference

我对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 个答案:

答案 0 :(得分:2)

对象通过引用传递,但引用本身是按值传递的。语句obj = null将参数obj设置为null,这意味着obj不再引用该对象,但对象本身仍然存在,并且仍然由变量{{1引用当o返回时。