如何在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.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个对象属性。总计是对所有这些统计数据进行总结的函数。
之后,我们有玩家最大健康,也是功能,这是使用“总”统计计算的功能,但因为它也是一个功能,我不能使它的工作。所以我想出的唯一办法,是不是 (player.totalEndurance * 10)
我要做((player.baseEndurance + player.weaponEndurance + player.armorEndurance + player.accessoryEndurance) * 10)
和部分在那里我的HTML显示它:
我加(),因为它的一个函数,但它不工作我得到NaN结果,函数要么是未定义的,要么或“对象不是函数”错误。
我希望你能帮助我:)谢谢
第2部分(最终):
要计算使用totalEndurance
需要括号添加到您的电话,因为它是一个功能。
player.totalEndurance()
第1部分(前评论):
我认为有些事情可能会在你的问题中丢失。
当我把您的播放器变量中的jsfiddle,然后执行
一切正常:
因为这部分其实是'((player.baseEndurance + player.weaponEndurance + player.armorEndurance + player.accessoryEndurance)* 10); },'我测试过它是否以这种方式工作,但我想使用'player.totalEndurance * 10'而不是 – Mariusz 2015-02-06 08:28:23
totalEndurance不是原始问题的播放器中定义的变量。我看到你添加了它作为一个函数,所以要访问它,你需要做'player.totalEndurance()* 10'和其他任何你想引用它,你需要引用它作为'player.totalEndurance()' – 2015-02-06 08:37:45
哦,是的 - - 谢谢,作出答复或编辑它,所以我可以再次接受^^再次感谢 – Mariusz 2015-02-06 08:56:07
似乎正常工作对我来说:http://jsfiddle.net/ cwecuxhu/ – 2015-02-06 07:34:24