对象分配错误:无法设置属性" item"未定义到" 7723"

时间:2015-01-02 06:28:41

标签: javascript object

我遇到了错误 - >无法设置属性" item"未定义到" 7723"

我的代码如下:

var objBins = new Object();

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

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

错误是什么意思?我做错了什么

4 个答案:

答案 0 :(得分:6)

默认情况下,当您访问对象中不存在的元素时,它将返回undefined。所以,

objBins[stItem+stBinnumber]

会给undefined并且您正在访问item。这就是你得到错误的原因,

  

无法设置属性" 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
};

答案 1 :(得分:3)

stItem + stBinnumber没有对象,因此当您尝试添加属性item时,会产生错误undefined

首先将其设置为对象,然后将item添加到该对象。

objBins[stItem + stBinnumber] = {};

objBins[stItem+stBinnumber].item = stItem;

答案 2 :(得分: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
};

答案 3 :(得分: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);

});