`

flex对象深拷贝以及Array的深拷贝

    博客分类:
  • flex
阅读更多
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init1()">
	<mx:Script>
		<![CDATA[
			import mx.containers.Panel;
			import mx.controls.Alert;
			import test.TestCopy;
			
			
			//对象的深拷贝
			public function init1(){
				var by:ByteArray=new ByteArray;
				var tc:TestCopy=new TestCopy;
				tc.i=1;
				tc.point=new Point(10,20);
				by.writeObject(tc)
				by.position=0;//必须移指针到0位置,否则报 “到文件末尾”
				var tbc=by.readObject();
				tbc.point=new Point(1,1);
				mx.controls.Alert.show(tc.point+":"+tbc.point);//{10,20}:{0,0};
			}
			//数组深拷贝
			public function init2(){
				var arr:Array=new Array;
				
				var tx:TestCopy=new TestCopy;
				
				tx.i=1;
				
				arr.push(tx);
				
				var by:ByteArray=new ByteArray;
				
				by.writeObject(arr);
				
				by.position=0;
				
				var arr1=by.readObject();
				
				arr1[0].point=new Point(20,30)
				
				Alert.show(arr1[0].point+"old"+arr[0].point);//{20,30},{0,0}
			}
		]]>
	</mx:Script>
</mx:Application>

 

package test
{
	import flash.geom.Point;
	
	public class TestCopy
	{
		public var i:int;
		public var point:Point;
		public function TestCopy()
		{
		}

	}
}

 

分享到:
评论

相关推荐

    前端面试常见问题规整.pdf

    - **深拷贝**:完全复制对象的所有层级属性,包括嵌套对象。 **实现深拷贝的方法**: - **递归**:手动遍历对象的每一层属性,递归地进行复制。 - **JSON 序列化**:使用 `JSON.stringify()` 和 `JSON.parse()` 来...

    最新版面试宝典(1).pdf

    - 深拷贝与浅拷贝的区别和实现方法。 - 回调地狱问题及其解决方案。 - ES6中Promise的理解。 - 对this关键字的理解和使用场景。 以上知识点涉及了前端开发领域中的布局技巧、性能优化、兼容性处理、动画效果...

    快速搞定前端技术一面.pdf

    深拷贝是JavaScript中复制对象的一个复杂过程,需要处理值类型和引用类型,以及递归拷贝数组和对象。 原型和原型链是理解JavaScript对象继承的关键。`instanceof`操作符用于判断一个对象是否属于某个构造函数的实例...

    前端大厂最新面试题-2019快看漫画前端社招面经.docx

    深拷贝是创建一个新对象,复制原始对象的所有属性,并确保嵌套的对象和数组也得到完全复制。以下是一个使用 JSON.parse 和 JSON.stringify 的简单实现: ```javascript function deepClone(obj) { if (obj === ...

    字节最新前端面试题.pdf

    - Object.defineProperty无法检测对象属性的增加和删除,以及数组长度的变化等。 32. div水平垂直居中的方法: - 可以使用CSS的定位属性(如flex, grid, absolute配合transform等)来实现元素的水平垂直居中。 ...

Global site tag (gtag.js) - Google Analytics