最近开发用到了对象深度复制和获取对象的属性名称列表,都是自己琢磨出来写函数来实现,写得我可谓是呕心沥血。 复制指定对象并返回对该副本的引用。该副本使用本机序列化技术生成。这意味着在复制过程中将遵循该自定义的序列化。 该方法设计用于复制数据对象,如集合的元素。不能用于复制 UIComponent 对象,如 TextInput 控件。如果要创建特定 UIComponent 对象的副本,可创建该组件的子类并实现 参数 返回指定对象的关于该类以及该类的属性的信息。 参数
谁知今天无意中发现AS3已提供ObjectUtil这样一个类来实现相关的操作:
public static function copy(value:Object):Object
clone()
方法,或执行复制的其它方法。value:Object
— 应复制的对象。Object
— 指定对象的副本。public static function getClassInfo(obj:Object, excludes:Array = null, options:Object = null):Object
obj:Object
— 要检查的 Object。 excludes:Array
(default = null
) — 指定应从返回结果中排除的属性名称的字符串数组。例如,可以指定 Event 对象的 ["currentTarget", "target"]
,因为这些属性可导致返回结果变大。 options:Object
(default = null
) — 该对象包含一个或多个属性,控制由该方法返回的信息。这些属性包括:
includeReadOnly
:如果为 false
,则排除只读对象属性。默认值为 true
。includeTransient
:如果为 false
,则排除具有 [Transient]
元数据的对象属性和变量。默认值为 true
。uris
:输出中要包括的所有命名空间的字符串数组。允许使用“*”通配符。默认情况下为 null,表示没有应包括的命名空间。例如,可指定 ["mx_internal", "mx_object"]
或 ["*"]
。 Object
— 对象包含下列属性:
name
:包含类的名称的字符串;properties
:所指定对象的属性名称的经过排序的列表,或为对原始键的引用(如果所指定对象为 Dictionary)
使用ObjectUtil进行深度复制及获取对象的属性名称列表
最新推荐文章于 2025-01-21 10:48:53 发布
copy方法