Это то, как это определено в спецификации EcmaScript . Этот синтаксис "свойства сокращения" был введен в ES2015.
Литерал объекта состоит из PropertyDefinitionList
, который сам по себе определяется в терминах PropertyDefinition
s.
Определение свойства определяется как:
- Идентификатор (это так называемый «сокращенный синтаксис», о котором вы спрашиваете)
- Имя свойства
:
Выражение присваивания - другие вещи, которые не имеют отношения к вопросу
В вашем вопросе adress.stree
не является идентификатором; это выражение, состоящее из двух идентификаторов, объединенных оператором доступа члена. Таким образом, оно не соответствует спецификации и не может быть использовано в сокращенном синтаксисе.
A TC39 предложение существует для дальнейшего расширения синтаксиса, предоставляя вам то, что вы ищете.