<?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()
{
}
}
}
分享到:
相关推荐
- **深拷贝**:完全复制对象的所有层级属性,包括嵌套对象。 **实现深拷贝的方法**: - **递归**:手动遍历对象的每一层属性,递归地进行复制。 - **JSON 序列化**:使用 `JSON.stringify()` 和 `JSON.parse()` 来...
- 深拷贝与浅拷贝的区别和实现方法。 - 回调地狱问题及其解决方案。 - ES6中Promise的理解。 - 对this关键字的理解和使用场景。 以上知识点涉及了前端开发领域中的布局技巧、性能优化、兼容性处理、动画效果...
深拷贝是JavaScript中复制对象的一个复杂过程,需要处理值类型和引用类型,以及递归拷贝数组和对象。 原型和原型链是理解JavaScript对象继承的关键。`instanceof`操作符用于判断一个对象是否属于某个构造函数的实例...
深拷贝是创建一个新对象,复制原始对象的所有属性,并确保嵌套的对象和数组也得到完全复制。以下是一个使用 JSON.parse 和 JSON.stringify 的简单实现: ```javascript function deepClone(obj) { if (obj === ...
- Object.defineProperty无法检测对象属性的增加和删除,以及数组长度的变化等。 32. div水平垂直居中的方法: - 可以使用CSS的定位属性(如flex, grid, absolute配合transform等)来实现元素的水平垂直居中。 ...