在Python,Javascript,JSON(也可能是其他语言)中,您可以重新定义字典文字中的键,如下所示:
{ "foo" : 1, "foo" : 2 }
这似乎会导致无法预测的结果,我无法想象为什么一个人会故意这样做。是否有任何理由允许这样做?
答案 0 :(得分:2)
不会导致不可取的结果。最后一个键将在对象中具有其值。
var o = { "foo" : 1, "foo" : 2 };
几乎与:
相同var o = {};
o["foo"] = 1;
o["foo"] = 2; // overrides the previous ones
// o == {"foo": 2}
答案 1 :(得分:1)
Javascript对象实质上映射到关联数组,这些关联数组具有添加,删除和重新分配键值存储的功能。
如果一个对象有能力重新分配一个值,为什么它会妨碍你这样做呢?在Javascript中有许多不同的方法来定义对象,我想象基于语法限制操作的开销是疯狂的,并且提供非常少的(IMO no)值。