Объект не обновляет объект из другого объекта - PullRequest
0 голосов
/ 08 октября 2019

Я создаю 2 объекта при запуске, один игрок, а другие комнаты player.name в настоящее время имеет значение 'todd', когда я запускаю его, запрашивает имя и затем сохраняет его в player.name

Комната объектовимеет «ключевую» историю, как показано ниже. я пытаюсь сказать "добро + player.name", но это требует тодда и больше ничего, потому что это не обновляет player.name в истории.

как я могу получить историю для обновления?

Я полагаю, что это потому, что 2 объекта создаются в первую очередь до обновления planer.name, поэтому у rooms.story уже задан todd в качестве имени, и он никогда не обновляется, у меня есть функция обновления, но я не уверен, как я могу обновить историю

let player = {
  name: "todd",
  location: "start",
  items: ["one"]
}

let rooms = {
  start: {
    name: "outside",
    story: 'Welcome ' + player.name
  }
}



Остальная часть моего кода https://jsfiddle.net/pwnuc62o/

index.html сначала загружает obj.js, который содержит эти 2 объекта, а затем загружает canvas.js, который является ссылкой jsfiddle

Спасибо, извините, это беспорядок, я новичок и учу себя чистому JS, посмотрев, что я хочу сделать, и реализовав его, и поиграв с ним, прежде чем искать какие-либо библиотеки.

1 Ответ

0 голосов
/ 08 октября 2019

Возможно, проще использовать функцию получения, а не другую функцию обновления. Вы можете определить переменную room, как показано ниже.

let rooms = {
  start: {
    name: "outside",
    get story() { return 'Welcome ' + player.name }
  }
}

Когда вы получаете доступ к rooms.start.story, движок js вызовет для вас функцию получения, нет необходимости определять функцию обновления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...