我正在尝试制作一个玩家与怪物战斗的小型视频游戏。在其中,我创建了一个对象" player",他使用名为stats的方法返回玩家HP和Balance数字。矮人现在将是我的新对象,因为我稍后会添加其他类型,并且我试图让文档记下玩家的统计数据,除非在这种情况下,单独进行。现在我使用播放器面板作为视图来查看javascript将如何打印代码,但稍后,我想使用特定的div框将玩家HP和Balance放在2个单独的字段中。我遇到的问题是我可以使用javascript代码将两个变量一起打印,但我似乎无法单独调用1或其他。有没有办法做到这一点?也仅供参考,当它打印第一行时,它会增加一个昏迷,EX:100,250。有没有办法删除它?虽然如果我的第一个问题得到解决,我认为这不会成为一个问题。
那么我怎么能告诉javascript我只想拉HP并写那个..或者只是拉平衡并写出来?我试图使用索引,但这不起作用。
var player = {
stats: function (hp, balance){
this.hp = hp;
this.balance = balance;
return [hp, balance]
}
}
var dwarf = Object.create(player);
document.getElementById("playerpanel").innerHTML += dwarf.stats(100, 250)
document.getElementById("playerpanel").innerHTML += dwarf.stats[1]
答案 0 :(得分:1)
您可以返回一个对象,例如:
return {hp: hp, balance: balance};
然后只提取返回对象的属性:
//this executes the function and stores the returned object
var theCall = dwarf.stats(100, 250);
//this pulls the assigned property by name "balance"
document.getElementById("playerpanel").innerHTML += theCall.balance;
答案 1 :(得分:0)
stats
可能不应该是一个函数,而是一个嵌套对象。
var Player = {
stats: {
hp: 0,
balance: 0
}
}
...
dwarf.stats.hp = 100;
console.log(dwarf.stats.hp); // 100
console.log(dward.stats); // { hp: 100, balance: 0 }
答案 2 :(得分:0)
您只需返回包含两个变量的对象即可。然后,您可以使用其字段名称hp
和balance
来引用各个字段,请参阅以下内容:
var player = {
stats: function(hp, balance) {
this.hp = hp;
this.balance = balance;
return {
hp, balance
}
}
}
var dwarf = Object.create(player);
document.getElementById("playerpanel").innerHTML += dwarf.stats(100, 250).hp
document.getElementById("playerpanel").innerHTML += ','+dwarf.stats(100, 250).balance

<div id="playerpanel"></div>
&#13;