Обновление: вопрос перезаписи, потому что исходный вопрос имел ложные предположения (я запускал код в консоли, которая уже инициализировала переменные, которые, как я думал, не были определены).JavaScript: Инициализация внутренней переменной после инициализации объекта
Это имеет смысл:
var obj = { 'whichScope': a };
obj.whichScope; //"ReferenceError: a is not defined"
Но тогда как же этот следующий пример не выдаст ошибку? И если вторая строка запускается перед первой строкой, почему бы obj.whichScope не разрешить «После»?
var obj = { 'whichScope': a };
var a = "After";
obj.whichScope; //"undefined"
Если «переменная A» в предыдущем примере выполняется перед OBJ инициализируется, делает любую часть «а =„После“;» также запускается до инициализации obj?
var a = "Before";
var obj = { 'whichScope': a };
a = "After";
obj.whichScope; //"Before"
Если whichScope относится к функции, которая возвращает «а», то это решимость «После» в последнем примере.