ActionScript の Array は dynamic オブジェクトな件
Java を書いてから、ActionScript 3 に戻ると、改めてプロトタイプベースであることを感じることがあります。 今日も Array に関してそんなネタがあったのでメモ。 var array:Array = new Array(); array[“sss”] = 20; array[-1] = “Aaa”; 上記はいずれも通ります。ちなみに負の添え字でセットしても length は 0 のままです。 var array:Array = new Array(); trace(array[10]); 上記は RangeError にならず、undefined が返ります。Vector だと RangeError になります。 var array:Array = new Array(); array[100] = “item”; trace(array[“100”]); 上記のように添え字を文字列しても、ちゃんと item が返ります。length は 101 となり、0〜99までの要素は undefined になります。 var array:Array = new Array(); array[100] = “item”; trace(0 in array); // false; trace(100 in array); // true; ...