javascript - 对象内部的对象

标签 javascript arrays object

我正在寻找一种解决方案,如何访问对象中的对象。 我正在制作一个游戏,其中不同的战利品都是对象,敌人是不同的对象 - 像这样:

item.ingredient.feather.birdfeather //item object
enemy.animal.badger //enemy object

现在我希望敌人对象有一个战利品属性,其中记录了所有可能的战利品。这就是该对象(当然还有更多)在我的代码中的编写方式:

var enemy = {
  animal: {
    badger: {
      loot: [item.ingredient.skin.badgerskin, item.ingredient.teeth.badgerteeth],
      health: 50,
      etc: "lala"
    }
  }
}

但是对于我的战利品对象中的对象数组,它总是向我显示错误 “ Uncaught ReferenceError :项目未定义”。

我是否可以将对象写入不同对象变量的数组中?谢谢你!

编辑:

item 已定义,但在另一个 js 文件中。

var item = {
  ingredient: {
    feather: {
      birdfeather: {
        name: "feathers"
      },

      longfeather: {
        name: "long feathers"
      }
    }
  }
}

仍然对这个错误感到疑惑

最佳答案

您的enemy对象声明代码没有任何问题。 它所需要的只是 item 对象的正确声明。 例如:

var item = {
  ingredient: {
    skin: {
      badgerskin: {
        id: "badgerskin",
        name: "Badger Skin",
        etc: 30
      }
    },
    teeth: {
      badgerteeth: {
        id: "badgerteeth",
        name: "Badger Teeth",
        etc: 80
      }
    }
  }
}

var enemy = {
  animal: {
    badger: {
      loot: [item.ingredient.skin.badgerskin, item.ingredient.teeth.badgerteeth],
      health: 50,
      etc: "lala"
    }
  }
}

关于javascript - 对象内部的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40273369/

相关文章:

c - 数组 C 的动态内存分配

arrays - 让 accumarray 输出一个表

javascript - 可变依赖与knockoutJS

aspx文件中的javascript代码

javascript - 视频阵列不工作

javascript - 正确解构整个组件的 this.props

c# - 带 Moq 的 MV3 测试项目,使用特定表达式时如何返回对象?

javascript - 显示数组中的特定属性

javascript - 如何防止直接访问我的 JSON 服务?

c++ - C++ 对象创建时的内存分配