我对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
,但事实并非如此。
有人能解释我'为什么'?
感谢。
答案 0 :(得分:2)
对象通过引用传递,但引用本身是按值传递的。语句obj = null
将参数obj
设置为null,这意味着obj
不再引用该对象,但对象本身仍然存在,并且仍然由变量{{1引用当o
返回时。