Javascript 对象不从另一个对象更新对象

Javascript 对象不从另一个对象更新对象,javascript,object,Javascript,Object,我在启动时创建了两个对象 一个是播放器,另一个是房间 player.name当前设置为“todd” 当我启动时,它会询问名称,然后将其存储在player.name中 对象室有一个“关键”故事,如下所示。我试图说welcome+player.name,但这需要todd,而不是其他任何东西,因为它不会更新故事中的player.name 我怎样才能让故事更新 我相信这是因为这两个对象是在planer.name更新之前首先创建的,所以rooms.story已经将todd设置为名称并且从不更新,我有一个更

我在启动时创建了两个对象 一个是播放器,另一个是房间 player.name当前设置为“todd” 当我启动时,它会询问名称,然后将其存储在player.name中

对象室有一个“关键”故事,如下所示。我试图说welcome+player.name,但这需要todd,而不是其他任何东西,因为它不会更新故事中的player.name

我怎样才能让故事更新

我相信这是因为这两个对象是在planer.name更新之前首先创建的,所以rooms.story已经将todd设置为名称并且从不更新,我有一个更新功能,但不确定如何更新故事

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

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



我剩下的代码是

index.html首先加载包含这两个对象的obj.js,然后加载canvas.js(JSFIDLE链接)


谢谢,抱歉,这太糟糕了,我是新来的,通过查找我想要做的事情,实现它并在查看任何库之前使用它来自学纯JS。

使用getter函数可能比使用另一个更新函数更容易。您可以如下定义变量
room

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

当您访问
rooms.start.story
时,js引擎将为您调用getter函数,无需定义更新函数

你的更新功能应该只做
rooms.start.story='Welcom'+player.name在更改了玩家的名字.riilight之后,我希望有一种方法我不必这样做,这样我就可以做类似。。故事:“欢迎”+player.neme+“之后这里会有一些故事,等等……”在对象内部,因为我将在对象中有一堆房间,有不同的故事,这取决于玩家。故事显示的位置。。。但我想我可以在更新中使用一个开关:)