2014-04-02 69 views
1

Iam試圖推入一個對象的數組,但我總是犯錯誤。如何推送數組中的對象?

fCElements = [], 
obj = {}; 

obj.fun = myFunction; 
obj.id = 2; 

fCElements.push ({ 

    obj, 
    myid:2, 
    name:'klaus'  

}) 

我該如何推入像「myFunction」這樣的數組函數?

謝謝

+0

什麼錯誤沒有你的GET –

+0

語法錯誤:無效的對象初始化 \t fCElements.push({ 的ReferenceError:初始化沒有定義 – user3485065

+0

你有一個語法錯誤,你的對象字面量,所以代碼不會被執行,很可能在同一個代碼塊中有另外一個名爲'init'的東西,它不會被創建,並且錯誤來自其他一些代碼。 – Guffa

回答

6

在對象字面值中,您只能給出鍵值對。您的obj沒有任何價值。

相反,你可以這樣做

var fCElements = []; 
fCElements.push({ 
    obj: { 
     fun: myFunction, 
     id: 2 
    }, 
    myid: 2, 
    name: 'klaus' 
}); 

現在,你正在創建一個新的對象,obj,在飛行,同時推到陣列。現在,你的fCElements這個樣子

[ { obj: { fun: [Function], id: 2 }, myid: 2, name: 'klaus' } ] 
4

你需要給你的obj屬性的名稱(或價值)。

var obj = {}; 

obj.fun = myFunction; 
obj.id = 2; 

fCElements.push ({ 

    obj:obj, 
    myid:2, 
    name:'klaus'  

}); 
0

您推送到陣列的對象似乎關閉。它會嘗試推送這個對象:

{ 
    {fun: myfunction, id: 2}, 
    myid: 2, 
    name: 'klaus' 
} 

由於第一個值沒有鍵,這是一個無效的對象。你應該像這樣做,而不是:

fCElements.push ({ 
    myObj:obj, 
    myid:2, 
    name:'klaus'  
}); 
相關問題