Название этого вопроса было полным, и это очень трудно объяснить без примера:
Учитывая переменную:
const string = 'test';
Объект может быть создан, когда переменная передается как значение свойства без явного определения имени свойства:
const obj = { string };
В результате имя переменной используется в качестве имени свойства, а значение переменной используется в качестве значения свойства:
{
string: 'test'
}
Мне интересно, есть ли имя для этой функции, или это где-то задокументировано как ожидаемое поведение? Является ли это частью конкретной версии языка JS? (Другими словами, это то, что будут поддерживать все браузеры?)
Моя первая мысль заключалась в том, что это имеет какое-то отношение к деструктурирующему присваиванию, поскольку аналогичный синтаксис существует для чего-то вроде:
const { a, b } = { a: 'Letter A', b: 'Letter B' };
Но это не совсем одно и то же, поэтому я не знаю, имеет ли эта идея какую-либо ценность.
Я хочу убедиться, что понимаю эту языковую функцию, прежде чем использовать ее (или решить, нужно ли ее использовать, если это, возможно, не функция, а скорее то, что просто происходит, но не должно быть полагаться ;) )
newObj = {id: id, name: name}
и т. д., при создании и возврате объектов и, аналогичным образом, при их получении вам часто придется делатьobj = getObj(); id = obj.id; name = obj.name;
. Так что это было кодифицировано, и был добавлен синтаксический сахар, чтобы избежать некоторых из этого шаблона. А что касается как — ну, после того, как это было кодифицировано в предложении, а затем принято, оно было реализовано как часть языка. - person VLAZ   schedule 02.11.2018