2015-01-02 52 views

回答

6

默認情況下,當您訪問對象中不存在的元素時,它將返回undefined。所以,

objBins[stItem+stBinnumber] 

會給undefined並且您正在訪問就可以了item。這就是爲什麼你所得到的錯誤,

無法設置的屬性「項」未定義爲「7723」

,必須先創建相應的對象,這樣

var objBins = new Object(); 
var stItem = "7723" 
var stBinnumber = "S-1-77" 
objBins[stItem + stBinnumber] = {}; 

現在,您創建了一個對象,其中包含關鍵字7723S-1-77,然後您可以執行此操作

objBins[stItem + stBinnumber].item = stItem; 
objBins[stItem + stBinnumber].binnumber = stBinnumber; 

如果現在打印objBins,它看起來像這樣

{ '7723S-1-77': { item: '7723', binnumber: 'S-1-77' } } 

注:您可以隨時創建一個新的對象,與對象的文字,這樣

var objBins = {}; 
var stItem = "7723" 
var stBinnumber = "S-1-77" 
objBins[stItem + stBinnumber] = { 
    item: stItem, 
    binnumber: stBinnumber 
}; 
3

沒有對象在關鍵stItem + stBinnumber,因此當您嘗試添加屬性item它會產生錯誤undefined

先將其設置爲對象,然後將您的item添加到該對象。

objBins[stItem + stBinnumber] = {}; 

objBins[stItem+stBinnumber].item = stItem; 
2

您正試圖訪問不存在的東西item屬性。你還沒有分配任何東西給objBins["7723S-1-77"],所以它是undefined

相反,嘗試:

var objBins = new Object(); 

var stItem         = "7723" 
var stBinnumber        = "S-1-77"    

objBins[stItem+stBinnumber] = { 
    item: stItem, 
    binnumber: stBinnumber 
}; 
1

你應該嘗試這樣的事:

$(document).ready(function() { 

    var objBins = new Object(); 

    var stItem         = "7723" 
    var stBinnumber        = "S-1-77"    

    objBins[stItem+stBinnumber]=new Object();// create new object 
    objBins[stItem+stBinnumber].item   = stItem; 
    objBins[stItem+stBinnumber].binnumber  = stBinnumber; 
    console.log(objBins[stItem+stBinnumber].item); 

}); 
相關問題