Flex中的Object和Dictionary

今天看“Flex 3”,考虑在实习结束之前将这本借来的书读完,然后也算是自己又多会了门语言(此语言和Java基本上很像,只是读懂代码和会写代码还是有很多差距的,更何况还有很多API呢,我终于认识到了了解API的重要性。。)

 

言归正传,话说一开始在code里看到Dictionary很是困惑,数据字典这个名词也是一直困惑我的名词,总是查完就忘。。Object还是蛮容易理解的,和JSONObject很像,应该说经常结合JSON来做远程数据传输。我们可以给Object的实例添加自定义的属性(一般一个类在初始化之前必须是预先定义好的,初始化之后我们只能访问预定义的属性和方法),举例如下:

var obj : Object = new Object();
obj['id'] = "1";
obj['name']="wyr"

 也可以和定义Array一样,直接赋值,举例如下:

var obj:Object = {"id" : "1", "name"  : "wyr"};

 其实就是key-value,嗯。

 

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

var key1:Object = new Object();
key1.toString() = function():String {
      return "1";
};

var key2:Object = new Object();
key2.toString() = function():String {
      return "1";
};

var key3:String = "1";

var key4:int = 1;

var obj:Object = new Object();
obj["1"] = "a";

var dict: Dictionary = new Dictionary();
dict["1"] = "a";

//Result
trace(obj[key1]);         //1
trace(obj[key2]);         //1
trace(obj[key3]);         //1
trace(obj[key4]);         //1


trace(dict[key1]);         //未定义
trace(dict[key2]);         //未定义
trace(dict[key3]);         //1
trace(dict[key4]);         //1
 其实还是有点小糊涂,多读读吧。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值