据我所知,同样基于与 actionscript 相同的 ECMAscript 的 javascript 并没有真正通过引用传递对象。至少这是我最近读到的。例如:
function doStuff(myObj){
myObj.name = 'groovy chicken';
myObj = null;
}
var newObj = new Object();
doStuff(newObj);
这是我在“面向 Web 开发人员的专业 Javascript”一书中找到的一个示例。尽管您将对象传递给函数,并且添加 name 属性实际上会将属性添加到您的初始对象,但当您设置为 null 时,该对象在本地范围内而不是在全局范围内被销毁。
对我来说,这仍然有点令人困惑,因为您拥有的 myObj 仍然指向与 newObj 相同的位置,您可以实际添加或更改属性。唯一的区别是你不能从全局范围内销毁它。
所以我想知道这是否也适用于actionscript,因为从我读过的内容来看,actionscript 3 确实通过引用传递了对象,而我没有读到任何相反的东西。