Lese David Flanagans Definitive Guide (6. Auflage), stolperte auf diesem:JS: zwei oder mehr Objekteigenschaften mit demselben Namen im nicht strikten Modus?
In Strict-Modus ist es ein Syntaxfehler für eine Objektliteral zwei oder mehr Eigenschaften mit dem gleichen Namen zu definieren. (Im nicht strikten Modus tritt kein Fehler auf.)
Ich kann keine Beispiele finden - ist das überhaupt möglich? Ich habe versucht,
var obj = {prop: 'foo', prop: 'bar'};
... aber natürlich habe ich mit nur einem Objekt am Ende (Object {prop: "bar"}
), in den beiden streng und nicht-strengen Modi.
Ist diese Implementierung abhängig? Das Buch ist eine Ausgabe 2011, ECMAScript 5 ist da drin.
Sollte ich ein neueres Buch lesen?
Huh, das ist seltsam. Es ist definitiv eine der strengen Modusbeschränkungen gemäß der ES5-Spezifikation: https://es5.github.io/#C und https://es5.github.io/#x11.1.5. Ich überprüfe, ob ES6 es jetzt aufgehoben hat (vielleicht für berechnete Eigenschaften). – Ryan
kein Fehler auftritt, bedeutet kein Syntaxfehler. Ein Objekt kann nicht mehrere Eigenschaften mit demselben Namen haben. – thangngoc89
@ thangngoc89 In beiden Modi tritt kein Syntaxfehler auf. Irgendwelche Ideen warum? – montrealist