这可能是一个非常简单的问题,我只是没有最模糊的方法。
我有一个我想要复制的对象,并且不知道如何去做。这是我的尝试:
var myObj = new ObjectClass();
var duplicate = myObj;
duplicate = null;
myObj.function(); // Error: Null reference
ObjectClass非常庞大,无法创建并创建自己的子级,我相信其中可能还有一些单例类。
有没有办法轻易复制一些东西?
编辑:看起来我正在寻找没有AS3功能的“克隆”,而且你无论如何都无法克隆私人数据。有人知道一个库或一个解决方法来克隆一堆私人数据吗?
答案 0 :(得分:4)
public static function copy(o:Object):Object
{
var bytes:ByteArray = new ByteArray( );
bytes.writeObject( o );
bytes.position = 0;
return bytes.readObject( );
}
用法:
registerClassAlias(“com.tests.TestClass”,TestClass);
var testCopy:TestClass = TestClass(ObjectUtil.copy(test));
答案 1 :(得分:1)
您可以使用ObjectUtil.copy()
(Flex库)。但你是对的,它不支持私人数据。所以这是一个黑暗的镜头,但我想知道你是否使用ByteArray.writeObject()
将其序列化为AMF,如果这将复制私人数据?可能值得一试。