| Цитата: | 
	| А как в классическом ООП решается эта проблема? | 
	
Обычно вложенный класс имеет доступ к членам внешнего класса.
Например для ЯП Java (не Script) если это нестатические классы то можно наваять что-то в стиле такого:
public class MyObj {
	private String name = "abc";
	public class SubObj {
		private int x = 12345;
		void printName() {
			System.out.println(name);//спокойно обратимся к полю name внешнего класса.
		}
	}
}
Ну а использование такого как-то так будет:
MyObj.SubObj obj = new MyObj().new SubObj();
obj.printName();
Ладно, это конечно оффтоп 
 
 
Просто представление в JS объектов в виде массивов накладывает свои особенности, сразу непривычно