`

flex中dictionary跟Object的区别与遍历

    博客分类:
  • flex
阅读更多
flex中dictionary跟Object的区别与遍历

        AS3中Object和 Dictionary都可以用来保存key-value形式的数据,Dictionary类和Object唯一的区别在于:Dictionary对象可以使用非字符串作为键值对的键。例如:


var obj:Object = new Object();  
obj["name"] ="name"; // key 字符串"name"  
obj[1] = 1; // key是1 (被转换成字符串"1")  
obj[new Object()] ="object"; // key是new Object(),被转传成字符串"[object Object]"  
for (var key:String in obj) {  
        trace(key+":"+obj[key]); // 输出 1:1 [object Object]:object name:name 


也就是说,无论用什么类型的变量作为键,Object都将key转换成字符串。同时,如果你使用了不同的对象作为键,都会被转换成字符串"[object Object]"作为键,因此而指向了同一个数据。例如:


var a:Object = new Object();     
var b:Object = new Object();     
var obj:Object = new Object();     
obj[a] = 1; // obj["[object Object]"] = 1;     
obj[b] = 2; // obj["[object Object]"] = 2;     
for (var key:String in obj) {     
       trace(key+":"+obj[key]); // traces: [object Object]:2  


Dictionary类将没有这个限制,你可以将键设置成任何一种数据类型。例如:

[javascript] view plaincopy
</pre>
<pre class="javascript" name="code">var a:Object = new Object();  
var b:Object = new Object();  
var dict:Dictionary = new Dictionary();  
dict[a] = 1; // dict[a] = 1;  
dict[b] = 2; // dict[b] = 2;  
for (var key:* in dict) {  
       trace(key+":"+dict[key]); // traces: [object Object]:2 [object Object]:1 




注意:
1、虽然在trace的时候,输出的还是[object Object],但是这个结果是对象的toString的结果。在Dictionary对象中,代表的是不同的对象引用。
2、这里的key的类型是*。这是很重要的,因为dict对象中的键可能是任何数据类型的。


3、Object的键必须是字符串,或表示字符串的表达式(变量或函数),若不是字符串的表达式,则将调用toString()方法,将其转化为字符串;
4、与Object不同的是,Dictionary使用的键是对象的引用,而不是字符串,且非原始对象键调用之前是通过全等运算符(===)来进行判断,并不会将数据类型强制转换之后再进行判断。
0
0
分享到:
评论

相关推荐

    Flex调用xml通过DataGrid遍历简单示例

    creationComplete="service.send()" &gt; &lt;![CDATA[ import mx.controls.Alert; import mx.rpc.events.FaultEvent;... import mx.collections.ArrayCollection;... import mx.rpc.events.ResultEvent;...

    flex objecthandles一个很不错的拖拽伸缩控件

    接下来,我们将深入探讨Flex中的拖拽(Drag)和伸缩(Resize)机制,以及ObjectHandle组件如何实现这些功能。 1. Flex框架:Flex是Adobe开发的一种用于构建富互联网应用(RIA)的开源框架,基于ActionScript和MXML。它...

    Flex 遍历Object键和值的示例代码

    在Flex编程中,有时我们需要遍历一个Object对象的键(keys)和值(values),以进行数据处理或显示。在ActionScript 3.0中,这是通过循环结构来完成的。下面将详细介绍如何使用Flex遍历Object的键和值。 首先,让...

    flex array 搜索 遍历

    `flex array`指的是在Flex应用中使用的数组,它与标准的AS3数组类似,但提供了更丰富的功能,例如动态扩展和对数组元素的强类型检查。在AS3中,数组可以存储任何类型的数据,包括对象。这里搜索的目标是找到一个对象...

    flex中拖拉拽好实例objecthandles

    在本实例中,我们关注的是"flex中拖拉拽好实例objecthandles",这是一项利用Adobe Flex框架实现的拖放功能,特别是针对对象手柄(ObjectHandle)的处理。 ObjectHandle是Flex中用于控制拖放行为的一种特殊组件,它...

    flex 遍历Object对象内容的实现代码

    在Flex编程中,遍历Object对象内容是常见的需求,特别是在处理动态数据或进行对象属性检查时。本篇文章将深入探讨如何在Flex中遍历Object对象的内容,并提供相关的实现代码示例。 首先,让我们理解Flex中的Object类...

    FLEX中文帮助flex中文帮助

    flex中文帮助flex中文帮助flex中文帮助flex中文帮助

    Flex使用RemotingObject和后台通信的基本步骤

    通过上述步骤,我们可以使用Flex的RemotingObject与后台进行数据交换。这种方式使得Flex应用程序能够灵活地调用远程服务,实现数据的获取和提交。在实际开发中,可能还需要考虑到安全性、性能优化以及错误处理等多...

    flex-object-handles.zip_flex

    在Flex开发中,"flex-object-handles.zip_flex"这个压缩包可能包含了关于如何操作和交互Flex中的对象,特别是涉及到对象的移动、编译、放大和缩小功能的代码示例或教程。Flex是一种基于ActionScript和MXML的开源框架...

    flex 官方文档 中文教程

    Flex提供了强大的调试工具,如Flex Builder的集成开发环境(IDE),以及Flex SDK中的命令行编译器,帮助开发者定位和修复问题。 12. **国际化和本地化** Flex支持应用的国际化和本地化,允许开发者创建适应多种...

    flex 面试题flex

    【Flex面试题】Flex面试题主要涵盖Flex的基础概念、开发框架、MVC模式的应用、内存管理、垃圾回收机制、前端性能优化以及与后端通信等多个方面。以下是对这些知识点的详细解析: 1. AS2与AS3的区别: AS2...

    flex中文帮助文档

    Flex是Adobe公司开发的一种富互联网应用程序(Rich Internet Application,RIA)框架,主要用于构建可以在多个浏览器和操作系统上运行的交互式用户界面。这个“flex中文帮助文档”提供了对Flex技术的全面介绍和快速...

    Flex中利用IFrame解决嵌入HTML时Flex组件被遮挡和IFrame被隐藏的问题

    在Flex开发中,有时我们需要将HTML内容嵌入到Flex应用中,以便实现更丰富的交互功能。然而,在这种情况下,可能会遇到一些技术挑战,比如Flex组件被HTML内容遮挡或者IFrame本身被隐藏。本文将详细讲解如何利用IFrame...

    Flex中文帮助 学习Flex的好资料

    4. **数据绑定**:Flex中的数据绑定是其强大特性之一,它允许UI组件的状态与应用程序数据自动同步。这大大简化了代码,提高了开发效率。 5. **事件驱动编程**:Flex应用程序是基于事件驱动的,用户操作或其他系统...

    Flex中Tree组件的数据源举例(xml,array,object)

    本篇将详细介绍如何为Flex中的Tree组件设置不同的数据源,包括XML、Array和Object。 首先,让我们从XML数据源开始。XML因其结构化的特性,非常适合用来表示层次数据。在Flex中,我们可以使用mx.collections....

    Flex3与flex4的区别

    Flex4与Flex3之间的主要区别在于其引入的新组件和外观架构——Spark,以及在布局管理、状态使用、效果实现等方面的改进。虽然从Flex3迁移到Flex4需要一些调整,但总体来说,Flex4提供了一系列增强功能,旨在提高开发...

    flex中文教程.pdf

    Flex应用通常运行在Flash Player上,BlazeDS是Adobe提供的服务器端技术,用于实现Flex应用与后端服务器的数据通信。通过AMF(Action Message Format)协议,BlazeDS可以高效地传输数据,实现富客户端与服务器的双向...

    flex与后台通讯方式

    本文将详细探讨Flex如何通过RemotingObject与后台进行通信。 一、Flex与后台通讯的基础 1. BlazeDS和LCDS:Flex与后台通信通常借助于BlazeDS或LCDS(LiveCycle Data Services),这两个都是Adobe提供的服务器端...

Global site tag (gtag.js) - Google Analytics