Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何总结javascript中的两个不同函数_Javascript - Fatal编程技术网

如何总结javascript中的两个不同函数

如何总结javascript中的两个不同函数,javascript,Javascript,我试图总结两个函数,它们是同一对象的一部分 var player = { stats: 0, level: 1, inventory: 30, baseStrength: 5, weaponStrength: 0, armorStrength: 0, accessoryStrength: 0, totalStrength: function () { return (player.baseStrength + player.weaponStrength + player.armorStr

我试图总结两个函数,它们是同一对象的一部分

var player = {
stats: 0,
level: 1,
inventory: 30,
baseStrength: 5,
weaponStrength: 0,
armorStrength: 0,
accessoryStrength: 0,
totalStrength: function () {
    return (player.baseStrength + player.weaponStrength + player.armorStrength + player.accessoryStrength);
},
baseEndurance: 5,
weaponEndurance: 0,
armorEndurance: 0,
accessoryEndurance: 0,
totalEndurance: function () {
    return (player.baseEndurance + player.weaponEndurance + player.armorEndurance + player.accessoryEndurance);
},
baseAgility: 5,
weaponAgility: 0,
armorAgility: 0,
accessoryAgility: 0,
totalAgility: function () {
    return (player.baseAgility + player.weaponAgility + player.armorAgility + player.accessoryAgility);
},
baseDexterity: 5,
weaponDexterity: 0,
armorDexterity: 0,
accessoryDexterity: 0,
totalDexterity: function () {
    return (player.baseDexterity + player.weaponDexterity + player.armorDexterity + player.accessoryDexterity);
},
baseIntelligence: 5,
weaponIntelligence: 0,
armorIntelligence: 0,
accessoryIntelligence: 0,
totalIntelligence: function () {
    return (player.baseIntelligence + player.weaponIntelligence + player.armorIntelligence + player.accessoryIntelligence);
},
baseWisdom: 5,
weaponWisdom: 0,
armorWisdom: 0,
accessoryWisdom: 0,
totalWisdom: function () {
    return (player.baseWisdom + player.weaponWisdom + player.armorWisdom + player.accessoryWisdom);
},
baseLuck: 5,
weaponLuck: 0,
armorLuck: 0,
accessoryLuck: 0,
totalLuck: function () {
    return (player.baseLuck + player.weaponLuck + player.armorLuck + player.accessoryLuck);
},
experience: 0,
maxexperience: 100,
gold: 0,
health: 50,
maxhealth: function () {
    return ((player.baseEndurance + player.weaponEndurance + player.armorEndurance + player.accessoryEndurance) * 10);
},
mana: 50,
maxMana: function () {
    return (player.totalWisdom * 10 + player.totalIntelligence * 5);
},
manaRegen: function () {
    return (player.totalWisdom);
},
mindamage: function () {
    return Math.floor((player.totalStrength * 0.5));
},
maxdamage: function () {
    return (player.totalStrength * 0.8);
},
hpregen: function () {
    return Math.floor((player.totalEndurance));
},
accuracy: function () {
    return Math.floor((95 + (player.totalAgility * 0.05 + player.totalLuck * 0.1)));
},
defense: function () {
    return (player.totalDexterity * 1.2 + player.totalEndurance * 0.5);
},
evasion: function () {
    return (5 + (player.totalAgility * 0.5 + player.totalLuck * 0.15));
},
criticalChance: function () {
    return (player.totalAgility * 0.5 + player.totalLuck * 0.5);
},
criticalDamage: function () {
    return (player.totalStrength * 0.1 + player.totalDexterity * 0.1);
},
Lifesteal: function () {
    return (player.totalIntelligence / 100);
},
Lifesteal2: function () {
    return (player.totalIntelligence);
},
dropRate: 0,
expRate: 0
};
好的,正如你们所看到的,每个属性我有5个对象属性,基本属性/武器属性/护甲属性/附件属性/总计属性。Total是一个函数,用于汇总所有这些统计数据

之后我们有了玩家maxhealth,伤害,这也是使用“total”属性计算的函数,但是因为它也是一个函数,所以我不能让它工作。所以我想的唯一办法是
(player.total耐力*10)

我必须做
((player.base耐力+player.weapon耐力+player.armorEndurance+player.accessory耐力)*10)

我用html显示它的一部分:

document.getElementById("maxhealth").innerHTML = player.maxhealth();
我添加()是因为它是一个函数,但它不起作用。我得到一个结果,这个函数要么是未定义的,要么是“对象不是函数”错误

我希望你能帮助我:)谢谢

要使用
totalEndurance
进行计算,您需要在调用中添加括号,因为它是一个函数

player.totalEndurance()
第1部分(评论之前):

我想你的问题可能遗漏了什么

当我将您的player变量放入JSfiddle并执行

document.getElementById("maxhealth").innerHTML = player.maxhealth();
一切正常:


对我来说似乎很好:因为这部分实际上是
((player.base耐力+player.weapon耐力+player.armorEndurance+player.accessory耐力)*10);)我测试了它,看看它是否能这样工作,但我想使用
player.total耐力*10
insteadTotal耐力不是原始问题的player中定义的变量。我看到您将其添加为函数,因此要访问它,您需要执行
player.total耐力()*10
以及任何其他您想要引用它的地方,您需要将其引用为
player.total耐力()
哦,是的-u-谢谢,请回答或编辑它,以便我可以再次接受^^谢谢