Object assignment error : Cannot set property "item" of undefined to "7723"

Object assignment error : Cannot set property "item" of undefined to "7723"

我遇到错误 -> 无法将未定义的属性 "item" 设置为“7723”

我的代码如下:

var objBins = new Object();

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

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

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

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

objBins[stItem+stBinnumber]

会给出 undefined 而您正在访问 item。这就是您收到错误的原因,

Cannot set property "item" of undefined to "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
};

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

先将其设置为一个对象,然后将您的 item 添加到该对象。

objBins[stItem + stBinnumber] = {};

objBins[stItem+stBinnumber].item = stItem;

您正在尝试访问 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
};

你应该尝试这样的事情:

$(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);

});