旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

AS3で for …in の取り出し順が不明

2007年10月29日

ActionScript3で、for … in 文でのプロパティ取り出し順が素直じゃないなという話。
例1

var foo:Object = {v:1, w:2, x:3, y:4, z:5};
for (var i:String in foo) trace(i);

trace出力

w
x
y
z
v

例2

var foo:Object = {w:2, x:3, y:4, z:5};
for (var i:String in foo) trace(i);

trace出力

w
x
y
z

例3

var foo:Object = {x:3, y:4, z:5};
for (var i:String in foo) trace(i);

trace出力

z
x
y

どういう理由で順番が変わってるんだろうか?

とりあえず、for … in (そしておそらくは for each … in)文では、プロパティを取り出す順番に期待しちゃいけないというのは良くわかった。
本来、そういうものだからいいんですけど・・・理由が知りたいです。
【追記】
「それは仕様です」というコメントを戴いたので、それで良しとした。
適当ですみません。