AS3.0 Object 作为关联数组

这里做个笔记吧。

    Object使用字符串作为key,即使你使用了其他类型的数据作为key,Object也会将使用的toString方法,返回([object Object])得到其字符串表示作为key来存储,也就是说Object使用toString方法进行键的比较。

var a:Object = new Object();

var ka:Object = new Object();

a[ka] = 'i am ka';

trace(a['ka']); // 输出 i am ka  你他么错误的也写上来,哎 这二货居然乱写(这里我是转载的),这里要重写toString()方法才行


Object作为关联数组 以及 动态 类 用法是这样的

var  a:Object = new Object();

a.type1 = 'ssssss';

trace(a["type1"])  // ssssss


a["type2"] = "bbb";

trace(a.type2);  // bbb      


我自己总结:

Object 作为关联数组时     动态增加的实例变量(该变量无类型), 是转化为该变量名字的字符创表示

也可以通过  Object[String] 来增加实例变量。


 

 

    Dictionary使用各种数据类型来作为key,它使用全等运算符(===)来进行键比较,在使用对象作为键时,它只比较实际的对象,即使这个对象有多个引用,在它眼中也只是一个键罢了。但是我发现一个很奇怪的现象,就是对Dictionary来说,指定key为整型字符串的时候,它会直接转换成Number类型存储,但是带小数点的浮点数字符串则依然按照字符串存储,这点有点不解~~~~~~~

var b:Dictionary = new Dictionary();
var ka:Object = new Object();
var ka_1:Object = ka;
b[ka] = 'ka here';
trace(b[ka_1]); //输出: ka here
trace(b['ka']); //输出: undefined
b['1'] = 'this is 1';
trace(b[1]); //输出: this is 1
b['1.1'] = 'this is 1.1';

for( var k:Object in b){
   trace(k);
   trace(typeof k);
}
/* 输出:
1
number
1.1
string
[object Object]
object
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值