对象内的对象

时间:2016-10-26 22:50:34

标签: 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"
    }
  }
}

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

我是否有可能在不同的对象变量中编写数组中的对象?谢谢!

编辑:

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

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

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

仍在怀疑这个错误

2 个答案:

答案 0 :(得分:1)

您的def main(): # this is the code that runs when your program is executed guessesTakenInt = 0 guessesTakenStr = 0 user_input = input("Please enter a number between 100 and 200: ") while True: if user_input.isnumeric(): user_input = int(user_input) guessesTakenInt += 1 if user_input > 200: user_input = input("This number is too big. Try again: ") elif user_input < 100: user_input = input("This number is too low. Try again: ") else: guessesTakenInt = str(guessesTakenInt) guessesTakenStr = str(guessesTakenStr) print("That number is just right!") print("You tried {} numbers and {} non-numbers to get it right.".format(guessesTakenInt, guessesTakenStr)) break else: guessesTakenStr += 1 print("Sorry that is not a number. ") user_input = input("Please enter a number between 100 and 200: ") main() 对象声明代码没有任何问题。 它所需要的只是enemy对象的正确声明。 例如:

item

答案 1 :(得分:0)

我自己找到了答案。因为这两个对象是在两个不同的js文件中创建的。我不得不更改调用脚本的html文件中的顺序。对不起,感谢您的回答