【发布时间】:2013-04-20 14:32:20
【问题描述】:
我想将一个对象按值传递给一个函数,以便我可以对该对象进行修改。我不希望更新原始对象。但是,所有函数参数都是通过引用传递的。
我试图复制一个对象 (var new_object:Object = original_object;) 这只是创建了一个指向original_object 的指针。
有没有办法按值传递参数?
update 我看到的一种解决方法是使用ByteArray 作为described here 来制作对象的深层副本。不确定它的效率如何。也许有更好的解决方案。
【问题讨论】:
-
下面的答案是正确的,因为您必须克隆对象才能不修改原始对象的字段。但是,您的问题不是:在 ActionScript 中,对象总是按值传递,而不是按引用传递。值 是 您传入的对象,而不是指向其容器的指针。您可以轻松地验证这一点:如果在您的函数中的任何时候,您将不同的对象分配给
original_object,它将指向新实例,但原始变量仍指向原始对象。
标签: actionscript-3 actionscript