Array的秘密

发布时间:2014-10-25 2:19:39
来源:分享查询网

昨天在调试YouYeeTree类的时候总是发现子项显示的数目不对,当时就很郁闷,为什么我的数据声明正确但是显示出来的数目总是不对呢?一下是数据声明代码: var my_array:Array=new Array();my_array[0]=new Object();my_array[1]=new Object();trace(Array(my_array).length)//output 1 明明是两个子数据,为何返回my_array的长度是1?应该是2才对啊?!心里郁闷了一阵再来试验: var my_array:Array=new Array();my_array[0]=new Object();my_array[1]=new Object();trace(my_array.length);//output 2 这下又正常了,难道是Array转换反而使得其变质了?怪小生不才一直没有想明白其中的缘由,继续查阅文档:var obj:Object = [ "a", "b", "c" ];var newArray:Array = Array( obj );trace(newArray == obj);    // falsetrace(newArray[0] == obj); // truetrace(newArray[0][0])      // atrace(newArray[0][1])      // btrace(newArray[0][2])      // c 这个是帮助文档里面的例子,算是找到缘由了,再进行刚才的试验:var my_array:Array=new Array();my_array[0]=new Object();my_array[1]=new Object();trace(Array(my_array)[0].length);//output 2 现在终于明白这是为什么了,当使用Array()的时候,其会自动创建一个新的数组,然后把Array()内的参数变成其第一个子项。 看来以后使用Array的时候就一定要留心了,这和其他类的强制转换函数很不一样。

返回顶部
查看电脑版