我目前正在学习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