引:http://blog.csdn.net/meetlunay/article/details/6746119
Dictionary 直接继承Object:
Dictionary 类用于创建属性的动态集合,该集合使用全等运算符 (===) 进行键比较。
将对象用作键时,会使用对象的标识来查找对象,而不是使用在对象上调用toString() 所返回的值。
若要从 Dictionary 对象中删除键,请使用 delete 运算符。
Dictionary利用键值直接访问,无须像Array那样手动编码遍历搜索,较为高效。
注:上面的例子是用object来存储数据,然后添加到dictionary里面去的。
其实就面向对象思想来说,我们应该尽量避免用object来存储数据,
首先object是会绕开编译器的检查,同时这样的方法也不易于代码的自解释,
二是应该利用自定义类的对象来存储数据。
Dictionary是一种以键值类型的数据结构,和Object一样,在as中能够用把他看成是Hash。
import flash.utils.Dictionary;
| 1. |
var obj:Dictionary = new Dictionary(); |
| 2. |
var key:Sprite = new Sprite(); |
| 3. |
obj[key] = 300; |
| 4. |
for(var p:String in obj) |
| 5. |
{ |
| 6. |
trace(p);//[object Sprite] |
| 7. |
trace(obj[p]);//undefined |
| 8. |
} |
返回是undefined。这是对的,因为键应该是一个对象而不是一个对象的toString()。
稍做一下改动。
这里的p使用的任意类型,这样作为键的对象就不会被toString()了。输出了正确的300。