AS 对象 深度复制

2009年6月7日 1 条评论

对象赋值分浅复制和深复制,Array.concat就属于浅复制。
浅复制:将实例及子实例的所有成员(属性,静态的除外)都复制一遍。
深复制:将实例及子实例的所有成员(属性, 静态的除外)都复制一遍,(引用要重新分配空间!)

AS3里没有深复制,就写了个深复制的工具类ObjectUtil.as。
AS3里矢量的显示对象不能被复制,所以这里的ObjectUtil也不能复制显示对象。

ObjectUtil的局限性:

  1. 不能对显示对象进行复制
  2. obj的必须有默认构造函数(参数个数为0,或都有默认值)
  3. obj 里有obj类型 之外 的非内置数据类型时, 返回类型将不确定

ObjectUtil源码

回到顶部