我目前正在学习JavaScript,并且在多次设置属性时遇到了这种相当奇怪的行为。例如:

var duck = {feet: 1, feet: 2}


跑步时

show(duck)


我懂了

{feet:2}


是否有一些奇怪的JavaScript原因导致此行为?为什么没有抛出错误?

最佳答案

一个对象中不能有多个具有相同名称的属性,但是该语言可以使它无提示地通过。那是语言上的缺陷。 ECMAScript 5严格模式修复了该问题,因此以下内容将引发错误:

"use strict";
var duck = {feet: 1, feet: 2}
// SyntaxError: Duplicate data property in object literal not allowed in strict mode

10-07 20:02