我遇到错误 - >无法将undefined的属性"item"设置为"7723"
我的代码如下:
var objBins = new Object();
var stItem = "7723"
var stBinnumber = "S-1-77"
objBins[stItem + stBinnumber].item = stItem;
objBins[stItem + stBinnumber].binnumber = stBinnumber;
Run Code Online (Sandbox Code Playgroud)
错误意味着什么?我究竟做错了什么
默认情况下,当您访问对象中不存在的元素时,它将返回undefined.所以,
objBins[stItem+stBinnumber]
Run Code Online (Sandbox Code Playgroud)
会给undefined你,你正在访问item它.这就是你得到错误的原因,
无法将undefined的属性"item"设置为"7723"
您应该首先创建相应的对象,如下所示
var objBins = new Object();
var stItem = "7723"
var stBinnumber = "S-1-77"
objBins[stItem + stBinnumber] = {};
Run Code Online (Sandbox Code Playgroud)
现在,您已经使用密钥创建了一个对象,7723S-1-77然后就可以了
objBins[stItem + stBinnumber].item = stItem;
objBins[stItem + stBinnumber].binnumber = stBinnumber;
Run Code Online (Sandbox Code Playgroud)
如果你objBins现在打印,它会是这样的
{ '7723S-1-77': { item: '7723', binnumber: 'S-1-77' } }
Run Code Online (Sandbox Code Playgroud)
注意:您始终可以使用对象文字创建一个新对象,如下所示
var objBins = {};
var stItem = "7723"
var stBinnumber = "S-1-77"
objBins[stItem + stBinnumber] = {
item: stItem,
binnumber: stBinnumber
};
Run Code Online (Sandbox Code Playgroud)