我遇到了错误 - >无法设置属性" item"未定义到" 7723"
我的代码如下:
var objBins = new Object();
var stItem = "7723"
var stBinnumber = "S-1-77"
objBins[stItem + stBinnumber].item = stItem;
objBins[stItem + stBinnumber].binnumber = stBinnumber;
错误是什么意思?我做错了什么
答案 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);
});