2015-04-29 8 views
5

मैं बस में पाया गया कि पिछले क्रोम 42 और एफएफ 37.0.2 में कोड के इस लाइनों पूरी तरह से कानूनी रहे हैं"सख्त उपयोग करें"; अब डुप्लिकेट गुणों की अनुमति देता है?

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

(प्रतिलिपि चिपकाया MDN से)

आईई 10-11 और ओपेरा 28.0 में। 1750 यह अपेक्षित के रूप में त्रुटि फेंकता है।

एक ही समय में,

abc=0; 

त्रुटि (अघोषित चर) के रूप में उम्मीद का कारण बनता है।

क्या कोई जानता है कि इस तरह के परिवर्तन के कारण क्या हुआ?

+0

देखें [व्यवहार क्यों बदल गया है इस पर चर्चा] [https://esdiscuss.org/notes/2014-06-06#rest-properties-and-spread-properties-sebastian-markb-ge-)। –

उत्तर

12

यहां एक बगजिला ticket है। जो मैं इकट्ठा करता हूं (यहां और अन्य पृष्ठों को मैंने देखा है), ईपी 5 के विरोध में डुप्लिकेट गुण ईसीएमएस्क्रिप्ट संस्करण 6 में कानूनी हैं, जहां इसे सख्त मोड में प्रतिबंधित किया गया है।

+0

बिल्कुल https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Duplicate_property_names – Kaiido

+3

यह वास्तव में खराब बुरे खराब डिज़ाइन निर्णय की तरह दिखता है। –

+0

@AndreyKuleshov इस वजह से: http://es6-features.org/#ComputedPropertyNames – Kaiido

संबंधित मुद्दे