2011-11-24 63 views
2

編輯示例。我想問題是在這裏,但不明白它:Array的奇怪行爲

var aa:Number = 3 
var a:Array = new Array (3,2) ; 
var b:Array = new Array(3); 
fun(a) ; 
fun(b); 


function fun(c:Object) 
{ 
trace(c[0]); 

} 

//output 
// 3 
// undefined 

爲什麼我得到的輸出未定義在後一種情況下? 由於

回答

3
new Array(abc) 

應該是

new Array([abc])

沒有[]只設置陣列的長度。

2

所以對馬合木提的回答擴大...

在這裏,您創建一個新的數組,並用3個節點的長度來定義它,但在目前的節點是空的。

var b:Array = new Array(3); 

我相信你期待輸出跟蹤3而不是未定義。

所以,你可以添加項目 「3」 像馬合木提說:

var b:Array = new Array([3]); 

b.push(3);