这就是我试图通过 JavaScript 以点或 [] 表示法构建的内容:

var shoppingCart = {
        'item1' : {
            'description' : 'This is item #1',
            'price' : 10,
            'quantity' : 1,
            'shipping' : 0,
            'total' : 10
        }
    };

现在,如果 'item1' 是变量名 itemName

这有效:var shoppingCart = {};shoppingCart[itemName] = itemName;alert(shoppingCart.item1);
返回 item1
但这不起作用:1 var shoppingCart = {};2 shoppingCart[itemName]['description'] = 'This is Item #1';
JS 就死在第 2 行了,为什么?以及如何将描述值分配给“描述”?

我会这样做:
var shoppingCart = {
        itemName : {
            'description' : description,
            'price' : price,
            'quantity' : quantity,
            'shipping' : shipping,
            'total' : total
        }
    };

...但它使 key 字面意思是 itemName 而不是 item1

最佳答案

shoppingCart[itemName] 不存在。
您需要先创建它:

var shoppingCart = {};
shoppingCart[itemName] = { };
shoppingCart[itemName].description = 'This is Item #1';

或者,更好的是:
var shoppingCart = {};
shoppingCart[itemName] = { description: 'This is Item #1' };

10-04 23:37