`
luhantu
  • 浏览: 202928 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Flex 深复制 浅复制

    博客分类:
  • Flex
阅读更多

对于基本类型,无所谓深浅复制。

深浅复制只要是对于引用类型来说的。一句话概括来说就是:引用类型是否指向了新的内存地址。

例如对于数组来说,因为数组不是类型化数组,所以你可以往数组里面放置基本类型数据和引用类型数据,对于包含引用类型的数据的数组,讨论才有意义。

 

var array:Array = [1,2,3,{name:"kenny"}];
var shallowCopyArray:Array = array.concat();
var cloneArray:Array = ObjectUtil.clone(array) as Array;

 对于浅复制,shallowCopyArray最后一个元素和原始数组最后一个元素的引用地址是一样;

 

 对于深复制,cloneArray的最后一个元素和原始数组最后一个元素的引用地址是不一样;

内容地址的不一样,导致你操作的是否是同一个对象。

 

对于自定义对象的复制,譬如说自己提供一个clone()方法提供自身的复制对象。一般来说涉及到原型模式。

如果自定义对象中包含了另一个对象(自定义的),在你复制自身之前,需要做一些事情,不然它复制出来的对象就是一个Object啦,而非你自定义的对象。

App:

 

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" 
			   minWidth="955" minHeight="600"">
	<fx:Script>
		<![CDATA[
			import com.mode.clone.Company;
			import com.mode.clone.Person;
			protected function button1_clickHandler(event:MouseEvent):void
			{
			 	var person:Person = new Person();
				person.name = "kenny";
				var company:Company = new Company();
				company.name = "lomboard";
				person.company = company;
				var clonePerson:Person = person.clone();
				// 去查看下clonePerson中的company是否是一个Company对象还是一个Object
			}
		]]>
	</fx:Script>
	<s:Button click="button1_clickHandler(event)"/>
</s:Application>

 Person:

 

package com.mode.clone
{
	import flash.net.registerClassAlias;
	import mx.collections.ArrayCollection;
	import mx.utils.ObjectUtil;
	public class Person
	{
		public var name:String;
		public var company:Company;//另一个自定义对象
		public function clone():Person
		{
			registerClassAlias("com.mode.clone.Company",Company);//对一个对象进行编码时,保留该对象的类(类型)。
			registerClassAlias("com.mode.clone.Person",Person);
			//如果没有上面的编码,你就不能强制转换为person
			return ObjectUtil.copy(this) as Person;
		}
	}
}

 Company:

package com.mode.clone
{
	public class Company
	{
		public var name:String;
	}
}

 

 

0
0
分享到:
评论

相关推荐

    flex4.5从浅入深第一、二章清晰版

    本书《flex4.5从浅入深》旨在帮助开发者深入理解Flex 4.5的各个方面,从基础知识到高级特性,逐步提升开发技能。标题表明本书分为两大部分,第一章节包含16节内容,第二章节则有5节,都提供了清晰易读的版本。 在...

    flex4.5从浅入深第二章

    在“Flex 4.5从浅入深第二章”中,我们将深入探讨Flex 4.5的诸多核心概念和技术,帮助开发者更有效地利用这一平台创建动态且交互性强的Web应用。 本章节主要涵盖以下几个知识点: 1. **Spark组件模型**:与Flex 3...

    flex4.5 从浅入深 第一章 可视化组件.pdf 第二章 布局组件.pdf

    flex4.5 从浅入深 第一章 可视化组件.pdf 第二章 布局组件.pdf,初学者的福音。

    flex表格复制

    这个主题“flex表格复制”涉及到的是如何在Flex中实现表格数据的复制功能,这在许多业务应用中是非常常见的需求。Flex中的表格通常由mx:DataGrid组件表示,它允许用户展示和操作数据集。 在博文《flex表格复制》中...

    01 FLEX从浅入深简单教程.docx

    ### FLEX从浅入深简单教程 #### 一、Flex基本概述 Flex是Adobe公司推出的一种强大工具和技术集合,主要用于开发和部署可升级的富互联网应用程序(Rich Internet Applications, RIA)。通过Flex,开发人员可以利用...

    Flex 颜色处理 深浅变化

    一个colorUtil类,用于颜色变化取值,一个小算法,输入深色、浅色、step后,会自动按照step求出一组颜色,深浅变化。

    flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图

    flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图...

    Flex Flex Flex Flex

    Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex ...

    flex事件flex事件flex事件flex事件

    在前端开发领域,Flex布局(Flexible Box)是现代网页设计中的一个重要组成部分,它极大地提高了我们构建响应式和动态布局的能力。"flex事件"这个概念可能指的是与Flex布局相关的JavaScript事件或者是在Flex容器中...

    FLEX特效FLEX特效FLEX特效FLEX特效

    Flex特效在IT行业中主要指的是Adobe Flex,它是一个用于构建富互联网应用程序(RIA)的开源框架。Flex使用MXML和ActionScript编程语言,可以创建交互性强、视觉效果丰富的Web应用程序。在网页设计和开发中,Flex特效...

    Flex简介Flex简介Flex简介Flex简介

    Flex是Adobe公司推出的一种用于构建富互联网应用(Rich Internet Applications,简称RIA)的技术产品,它主要服务于企业级应用开发。Flex旨在提供一个强大的工具集,用于创建具有高度交互性和视觉吸引力的用户界面,...

    java flexjava flexjava flex

    java flexjava flexjava flex

    Flex A10如何复制粘贴文件.docx

    Flex A10是一款平板电脑设备,用户在使用过程中可能需要进行文件的复制和粘贴操作。这个过程在不同设备上可能会有所不同,但对于Flex A10,我们可以按照以下步骤来进行: 1. **启动Home键**:首先,当你需要进行...

    Flex 组件Flex 组件Flex 组件

    Flex组件是Adobe Flex框架的核心部分,它是一组预先构建的用户界面元素,用于构建富互联网应用程序(RIA)。Flex组件库提供了丰富的控件集合,包括按钮、文本框、列表、面板等,使得开发者能够轻松创建具有交互性和...

    Flex相册 Flex图片

    Flex相册 Flex图片

Global site tag (gtag.js) - Google Analytics