我想通過值傳遞一個對象到一個函數,以便我可以對該對象進行修改。我不想要更新原始對象。但是,所有的函數參數都是通過引用傳遞的。Actionscript - 如何通過值傳遞對象?
我試圖複製一個對象(var new_object:Object = original_object;
)這只是創建一個指向original_object
的指針。
有沒有一種方法可以通過值傳遞參數?
更新我看到的一種解決方法是使用ByteArray
作爲described here來製作對象的深層副本。不知道它有多高效。也許有更好的解決方案。
下面的答案是在正確的,你必須克隆不修改原始對象的字段的對象。但是,您的問題不是:在ActionScript中,對象總是*按值傳遞,而不是通過引用傳遞。值*是您傳入的對象,而不是指向其容器的指針。您可以很容易地驗證這一點:如果在函數中的任何時候,您將一個不同的對象分配給'original_object',它將指向新實例,但原始變量仍指向原始對象。 – weltraumpirat 2013-04-20 15:18:09