Это довольно открытый вопрос - есть много способов сделать это, которые могут быть одинаково «правильными». Но пара моментов:
Литеральный синтаксис вашего объекта недопустим - вам нужно удалить ключевое слово var
из имен ваших свойств, чтобы оно выглядело так:
var dungeon = {
room1:roomA,
room2:roomB,
room3:roomC
}
Но я думаю, что вам будет лучше с множеством комнат:
var dungeon = [ roomA, roomB, roomC ];
Потому что тогда вы можете легко варьировать количество комнат. Предполагая, что вы генерируете комнаты случайным образом, вы можете легко добавить новые комнаты в массив с помощью dungeon.push(new Room())
.
Кроме того, если так получится, что ваши комнаты будут в регулярной сетке, вы можете использовать массив массивов для представления этого:
var dungeon = [ [ roomA, roomB, roomC ],
[ roomD, roomE, roomF ],
[ roomG, roomH, roomI ] ];
Так, чтобы к правому среднему помещению обращались как dungeon[1, 2]
(строка 1, столбец 2, отмечая, что индексы массива начинаются с нуля).
Ваш синтаксис присваивания в вашей функции также неверен: вам нужно сказать
this.propertyName = someValue;
// NOT
this.propertyName : someValue;
Двоеточие :
используются для создания свойств в синтаксисе литерала объекта { property : value }
, но знак равенства =
используется для других назначений variableOrProperty = value
.