在Object类型和Dictionary类型中映射对象有什么区别

时间:2012-11-15 22:47:57

标签: actionscript-3

public var obj:Object;
public var dictionary:Dictionary;


public function MyClass(){

    obj = new Object();
    dictionary = new Dictionary();

    obj["1"] = 1;
    obj["2"] = 2;

    dictionary["3"] = 3;
    dictionary["4"] = 4;
}

public function returnFromObject(parameter:String):int{

     return obj[parameter];
}

public function returnFromDictionary(parameter:String):int{

     return dictionary[parameter];
}

他们可以为我服务。除非使用其中任何一个我都不知道的明显性能损失。

3 个答案:

答案 0 :(得分:2)

不同之处在于能够将对象用作键而不是字典中的字符串。除此之外,我不知道有任何重大差异(不要记得曾经在这些方面看到任何真正的基准,所以如果有人更明智,请告诉我们。)

http://gskinner.com/blog/archives/2006/07/as3_dictionary_.html

在评论中只提到页面上的表现只是一个简短的表现,一般来说,他们说我发现这些都是白痴并依赖于申请。

答案 1 :(得分:2)

看起来像Dictionary比对象和数组要快得多:

http://www.zombieflambe.com/actionscript-3/as3-dictionary-class-array-object-benchmark/

答案 2 :(得分:1)

虽然可能存在比这更多的差异,但我的第一个想法是变量声明,以及循环对象的能力。

var obj:Object = new Object();
obj.a = "test1";
obj.b = "test2";
obj.c = "test3";

for each (var prop in obj) trace(prop); //traces "test1, test2, test3"

此处提供更多信息:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/Dictionary.html