ActionScript中Object和Dictionary的区别
2012-05-07 12:14
309 查看
这里做个笔记吧。
Object使用字符串作为key,即使你使用了其他类型的数据作为key,Object也会将使用该key的toString方法得到其字符串表示作为key来存储,也就是说Object使用toString方法进行键的比较。
Dictionary使用各种数据类型来作为key,它使用全等运算符(===)来进行键比较,在使用对象作为键时,它只比较实际的对象,即使这个对象有多个引用,在它眼中也只是一个键罢了。但是我发现一个很奇怪的现象,就是对Dictionary来说,指定key为整型字符串的时候,它会直接转换成Number类型存储,但是带小数点的浮点数字符串则依然按照字符串存储,这点有点不解~~~~~~~
Object使用字符串作为key,即使你使用了其他类型的数据作为key,Object也会将使用该key的toString方法得到其字符串表示作为key来存储,也就是说Object使用toString方法进行键的比较。
var a:Object = new Object();
var ka:Object = new Object();
a[ka] = 'i am ka';
trace(a['ka']); // 输出 i am ka
var ka:Object = new Object();
a[ka] = 'i am ka';
trace(a['ka']); // 输出 i am ka
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
*/
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
*/
相关文章推荐
- flex中dictionary跟Object的区别与遍历
- Study Flex《AS3中Object与Dictionary的区别》
- flex——dictionary跟Object的区别与遍历
- flex中dictionary跟Object的区别与遍历
- AS3的Dictionary与关联数组Object的区别
- AS3中Object与Dictionary的区别 !
- flex中dictionary跟Object的区别与遍历
- flex中dictionary跟Object的区别与遍历
- AS3中Object与Dictionary的区别
- Dictionary与Object的区别
- flex中dictionary跟Object的区别与遍历
- flex中dictionary跟Object的区别与遍历
- AS3中Object与Dictionary的区别
- AS3中Object与Dictionary的区别
- AS3 AS3 object 和Dictionary的区别、===和==区别
- [转]AS3中Object与Dictionary的区别
- flex中dictionary跟Object的区别与遍历
- AS3中Object与Dictionary的区别
- AS3.0杂记——Dictionary、Object与Array
- C# 数组、ArrayList、List、Dictionary的用法与区别