在javascript中对象定义中的重复属性(在花括号内).这是一个错误吗?

Zo7*_*o72 3 javascript

我想知道以下javascript是否"有效".

var object = {
   'name' : 'test',
   'age' : 56,
   'age' : 25
}
Run Code Online (Sandbox Code Playgroud)

如你所见,我故意重复其中一个属性.(年龄)

重要的事情对chrome的快速测试似乎证明了javascript是有效的,而object.age等于25.

ps我问这个是因为我们写了一些javascript代码生成器,我想知道这是不是有效的js.

Nic*_*ver 5

从技术上讲它有效的,但推荐.

根据RFC4627(强调我的):

2.2.对象
对象结构表示为一对大括号,包含零个或多个名称/值对(或成员).名称是一个字符串.每个名称后面都有一个冒号,将名称与值分开.单个逗号将值与以下名称分隔开. 对象中的名称应该是唯一的.

授予此说应该,那么是的,你可以做到这一点...但它可能会导致不可预知的行为取决于谁的解析它在路上(通常最后一个属性,因为获胜的最前沿读解析器的行为).

另请注意,此RFC适用于JSON而不是对象文字(JSON是更严格的子集),但这些约定适用于两者.