import flash.utils.ByteArray; import flash.utils.getQualifiedClassName; import flash.net.*; //支持自定义类 //function copy(source:Object) :* { // // var typeName:String = getQualifiedClassName(source);//获取全名 // // trace("输出类的结构"+typeName); // // //return; // // var packageName:String = typeName.split("::")[0];//切出包名 // // trace("类的名称"+packageName); // // var type:Class = getDefinitionByName(typeName) as Class;//获取Class // // trace(type); // // registerClassAlias(packageName, type);//注册Class // // //复制对象 // // var copier:ByteArray = new ByteArray(); // // copier.writeObject(source); // // copier.position = 0; // // return copier.readObject(); // //} //不支持自定义类 function copy(value:Object):* { var buffer:ByteArray = new ByteArray(); buffer.writeObject(value); buffer.position = 0; var result:Object = buffer.readObject(); return result; } var init_arr:Array=[[1,2],[1,2]]; var copy_arr:Array=copy(init_arr); init_arr[0]=[3,4]; trace("init_arr: "+init_arr); trace("copy_arr: "+copy_arr); var init_obj:Object = {name:"name01",data:"data01"}; var copy_obj:Object=copy(init_obj); init_obj["name"]="dt"; var i:String; for(i in init_obj){ trace("init_obj: 键:"+i+" 值: "+init_obj[i]); } for(i in copy_obj){ trace("copy_obj: 键:"+i+" 值: "+copy_obj[i]); }