【发布时间】:2016-07-19 05:18:57
【问题描述】:
阅读 David Flanagan 的权威指南(第 6 版),偶然发现:
在严格模式下,定义对象字面量是语法错误 具有相同名称的两个或多个属性。 (在非严格模式下,没有错误 发生。)
我找不到任何示例 - 有可能吗?我试过了
var obj = {prop: 'foo', prop: 'bar'};
...当然我最终只有一个属性 (Object {prop: "bar"}),在严格和非严格模式下。
这是否依赖于实现?这本书是 2011 年版,里面有 ECMAScript 5。
我应该读一本新书吗?
【问题讨论】:
-
呃,这很奇怪。根据 ES5 规范,这绝对是严格的模式限制之一:es5.github.io/#C 和 es5.github.io/#x11.1.5。我正在检查 ES6 是否现在解除了它(可能是计算属性)。
-
没有错误发生意味着没有语法错误。一个对象不能有多个同名的属性。
-
@thangngoc89 两种模式都没有语法错误。任何想法为什么?
标签: javascript theory