Возможный дубликат:
Передача в динамических парах ключ:значение для литерала объекта?
Литерал объекта Javascript, ссылающийся на другое свойство в себе из другого свойства
var var1 = {};
var1.number = 20;
var1.numberplus3 = var1.number + 3;
console.log(var1.numberplus3);
var var2 = {
number: 20,
numberplus3: number + 3
};
console.log(var2);
В этом примере var1.numberplus3
оценивается как 23, а var2.numberplus3
оценивается как "undefined". Почему это?
(Я использую интерпретатор JS из Codecademy: http://labs.codecademy.com/#:workspace а>)
Спасибо!
var2.number
, ниthis.number
не сработают.var2
не работает, потому что на данный моментvar2
еще не определено.this
будет относиться к контексту, в котором выполняется код (скорее всего,windwow
), но 100% неvar2
. - person Felix Kling   schedule 26.02.2012