Я читаю ссылку MDN javascript, соответственно следующий код больше не возвращает false
:
function haveES6DuplicatePropertySemantics(){
"use strict";
try {
({ prop: 1, prop: 2 });
// No error thrown, duplicate property names allowed in strict mode
return true;
} catch (e) {
// Error thrown, duplicates prohibited in strict mode
return false;
}
}
В коде строгого режима ECMAScript 5 дублирующиеся имена свойств были считается синтаксисом. С введением вычислимого имущества имена, делающие дублирование возможными во время выполнения, ECMAScript 6 удалил это ограничение.
Мой вопрос в том, каковы практические преимущества разрешения дублирования имен свойств в инициализаторах? Я вижу, как при динамических свойствах объекта это может иногда возникать, но поскольку порядок приоритета, по-видимому, определяет, какое из свойств действительно задано на вновь созданном объекте, - это кажется более чем чем-то вроде неопределенного поведения, которое лучше всего избегать.