加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex中的Object和Dictionary

发布时间:2020-12-15 04:30:58 所属栏目:百科 来源:网络整理
导读:Flex中的Object和Dictionary 其实Dictionary和Object很相像,用途也差不多是一样的,只是Object的key只能是字符串,就算赋值的时候不是,也会被转换为字符串的,Dictionary的key可以是任何类型。(Object的key都是被转换为字符串(String)类型理解的,当有

Flex中的Object和Dictionary

其实Dictionary和Object很相像,用途也差不多是一样的,只是Object的key只能是字符串,就算赋值的时候不是,也会被转换为字符串的,Dictionary的key可以是任何类型。(Object的key都是被转换为字符串(String)类型理解的,当有多个Object对象,作为某个Object实例的key时,如果key对象的toString结果是一样的,那么得到的结果也是一样的),下面一个例子应该能多多少少说明这个问题:

<?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" applicationComplete="app(event)">
?<fx:Declarations>
??<!-- 将非可视元素(例如服务、值对象)放在此处 -->
?</fx:Declarations>
?<fx:Script>
??<![CDATA[
???import mx.controls.Alert;
???import mx.events.FlexEvent;
???
???private function app(event:FlexEvent):void{
????var key1:Object = new Object();?
????var key2:Object = new Object();?
????
????var obj:Object = new Object();?
????obj[key1] = "a";?
????obj[key2] = "b";?
????
????var dict: Dictionary = new Dictionary();?
????dict[key1] = "a";?
????dict[key2] = "b";?
????
????//Result?
????Alert.show(obj[key1]);???????? //b?
????Alert.show(obj[key2]);???????? //b?
????
????Alert.show(dict[key1]);???????? //a?
????Alert.show(dict[key2]);???????? //b?
???}
??]]>
?</fx:Script>
</s:Application>

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

参考:
http://michellewang.iteye.com/blog/1004276
http://hi.baidu.com/shin_tgdh/item/b7ad4d25087f840d77272c4c

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读