2015-04-29 27 views
5

Sadece geçen Chrome 42 ve FF 37.0.2 içinde bu kod satırları tamamen yasal olduğunu tespit"kullanımı sıkı"; şimdi çoğaltılan özelliklere izin veriyor?

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

(kopyalanıp yapıştırılan MDN itibaren) IE 10-11 ve Opera 28,0 yılında

. 1750, beklendiği gibi hata atar. Aynı zamanda

,

abc=0; 

beklendiği gibi hata (bildirilmemiş değişken) neden olur.

herkes böyle değişikliklere neyin sebep olduğunu biliyor mu?

+0

bakınız [davranışı neden değiştirdiğini bu tartışma] (https://esdiscuss.org/notes/2014-06-06#rest-properties-and-spread-properties-sebastian-markb-ge-). –

cevap

12

bir Bugzilla ticket burada. Topladığımdan (burada ve baktığım diğer sayfalardan), Çoğaltılmış özellikler, ES5'e karşı katı modda yasak olan ECMAScript sürüm 6'da yasaldır.

+0

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

+3

gerçekten kötü kötü kötü tasarım bir karar gibi görünüyor Yani. bu nedenle –

+0

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