我想通过值传递一个对象到一个函数,以便我可以对该对象进行修改。我不想要更新原始对象。但是,所有的函数参数都是通过引用传递的。Actionscript - 如何通过值传递对象?
我试图复制一个对象(var new_object:Object = original_object;
)这只是创建一个指向original_object
的指针。
有没有一种方法可以通过值传递参数?
更新我看到的一种解决方法是使用ByteArray
作为described here来制作对象的深层副本。不知道它有多高效。也许有更好的解决方案。
下面的答案是在正确的,你必须克隆不修改原始对象的字段的对象。但是,您的问题不是:在ActionScript中,对象总是*按值传递,而不是通过引用传递。值*是您传入的对象,而不是指向其容器的指针。您可以很容易地验证这一点:如果在函数中的任何时候,您将一个不同的对象分配给'original_object',它将指向新实例,但原始变量仍指向原始对象。 – weltraumpirat 2013-04-20 15:18:09