Резюмируя сегодняшний доклад...
Значит так: динамически создавать объекты неопределенной степени вложенности - не выйдет, по крайней мере тривиально, т.к. даже если вложенность заранее известна - надо маленько потанцевать с бубном... правило "При присваивании полю значения, "за кадром" проверяется наличие такого поля, если существует - значение заменяется, если нет создается" НЕ РАБОТАЕТ когда заглядываешь далее одного уровня вложенности, интерпретаторам нужен хотя бы "колодец" ({} пустой объект) на предыдущем уровне...
отсюда делаем вывод, наращивать вложенность необходимо через объявление "пустых" объектов на каждом уровне вложенности
var strFirst = "First-Level"
var strSecond = "Second-level"
var strThird = "Third-level"
var strFour = "Four-level"
var objTest={};
objTest[strFirst]={};
objTest[strFirst][strSecond] = {};
objTest[strFirst][strSecond][strThird]={};
objTest[strFirst][strSecond][strThird][strFour]='hello';
alert(objTest[strFirst][strSecond][strThird][strFour]);
PS: А как вы добавляете к коду на форуме "Запустить" ?