Большое спасибо, работает.
var p = a = {}; condition = 5;
while (condition--) p = p[0] = {}; // прячу значение поглубже
p[0] = 'Good morning';
p = a; condition = 6;
while (condition--) p = p[0]; // вывожу спрятанное значение
alert(p);
То есть, когда в операции присваивания справа стоит объект, то он всегда присваивается "по ссылке", т.е. новых объектов не создается?
А на переменную можно ссылаться только как на свойство объекта (как в строчке 3)? Специального оператора как в php нет?