読書デビッド・フラナガンさんDefinitive Guideの(第6版)、これにつまずい:strictモードでJS:厳密でないモードで同じ名前の2つ以上のオブジェクトプロパティ?
を、それが同じ名前で 二つ以上のプロパティを定義するオブジェクトリテラルの構文エラーです。 (非厳密モードでは、エラー は発生しません)
例はありません - それは可能ですか?私は
var obj = {prop: 'foo', prop: 'bar'};
を試してみました...もちろん、私は両方の厳格かつ非厳密モードでは、唯一つのプロパティ(
Object {prop: "bar"}
)で終わります。
これは実装に依存しますか?この本は2011年版で、ECMAScript 5がそこにあります。
私は新しい本を読むべきですか?
これは奇妙です。間違いなく、ES5仕様(https://es5.github.io/#Cおよびhttps://es5.github.io/#x11.1.5)に基づく厳密なモード制限の1つです。私はES6が今それを持ち上げているかどうかをチェックしています(おそらく計算されたプロパティの場合)。 – Ryan
エラーが発生していない場合は、構文エラーが発生していません。オブジェクトは同じ名前の複数のプロパティを持つことはできません。 – thangngoc89
@ thangngoc89両方のモードで構文エラーは発生しません。なぜどんなアイデア? – montrealist