Можно же просто запустить в консоли и проверить, что такое делать нельзя, и, если упрощенно объяснять, то:
1) сперва у нас создается именно
обьект (то что между { ... });
2) если в свойстве указанно какое-то
выражение (типо a+b, или obj.property) , то оно
вычисляется и результат этого выражения становиться значениям этого свойства;
3) допустим у нас есть что-то типо такого -
let o = {
x : 2,
y : o.x,
}
Свойство
x получает значение 2 и доходим до свойства y - видим там получения свойства
x объекта
o, но у нас еще нет переменной с именем
o, что значит мы не просто не можем получить свойство объекта, а мы не нашли сам объект и в итоге получаем
ReferenceError.
4) Если у нас не было никаких ошибок и объект успешно создан и размещен в памяти, только тогда создается в нужной области видимости переменная, которой присваивается ссылка на наш объект и
только тогда мы можем ссылаться на него за заданным именем.