为什么要重新定义字典文字中的键

时间:2017-02-17 23:00:55

标签: javascript python json dictionary literals

在Python,Javascript,JSON(也可能是其他语言)中,您可以重新定义字典文字中的键,如下所示:

{ "foo" : 1, "foo" : 2 }

这似乎会导致无法预测的结果,我无法想象为什么一个人会故意这样做。是否有任何理由允许这样做?

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)值。