2015-04-29 8 views
5

Ich fand nur, dass in der letzten Chrome 42 und FF 37.0.2 diese Zeilen Code vollkommen legal sind"verwenden Sie streng"; erlaubt jetzt doppelte Eigenschaften?

"use strict"; 
var o = { p: 1, p: 2 }; 

(Kopie kleistert von MDN)

In IE 10-11 und Opera 28.0. 1750 es wirft Fehler wie erwartet.

In Gleichzeitig

abc=0; 

verursacht Fehler (nicht deklarierten Variablen), wie erwartet.

Weiß jemand, was eine solche Änderung verursacht hat?

+0

Siehe [diese Diskussion, warum das Verhalten geändert wurde] (https://esdiscuss.org/notes/2014-06-06#rest-properties-and-spread-properties-sebastian-markb-ge-). –

Antwort

12

Hier ist ein Bugzilla ticket hier. Von dem, was ich sammle (hier und andere Seiten, die ich nachgeschlagen habe), sind doppelte Eigenschaften in ECMAScript Version 6 legal, im Gegensatz zu ES5, wo es im strikten Modus verboten ist.

+0

Absolut https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Duplicate_property_names – Kaiido

+3

Das sieht wirklich wie eine schlechte schlechte schlechte Designentscheidung aus. –

+0

@AndreyKuleshov deswegen: http://es6-features.org/#ComputedPropertyNames – Kaiido

Verwandte Themen