Javascript:如何获取函数的值?

时间:2015-03-14 01:07:42

标签: javascript html css

我正在做一个快速的游戏,玩家会对敌人的npc造成伤害。我在下面有一个函数来计算损坏,但是我无法通过控制台记录来说我正在做" X"伤害量。我究竟做错了什么?相反,它只是提取函数语句,但我希望它能给我函数值!

var damage = function() {
    return Math.floor(Math.random() * 5 + 1);
    };

我正确地在另一个代码中调用我的函数,但是当我尝试控制日志记录其他代码中的损坏时,我收到错误。

function attackButton() {
    darkwarrior.hp = darkwarrior.hp - damage();
    console.log(darkwarrior.hp);
    console.log(damage);

5 个答案:

答案 0 :(得分:3)

如果你运行console.log(damage());,你将获得“X”的伤害而不是函数声明。因此,您可以将attackButton()函数更改为:

function attackButton() {
    var damageDealt = damage();
    darkwarrior.hp = darkwarrior.hp - damageDealt;
    console.log(darkwarrior.hp);
    console.log(damageDealt);

答案 1 :(得分:0)

我不确定,你想记录结果吗?如果是这样,你可以这样做:

var damage = function() {
    return Math.floor(Math.random() * 5 + 1);
    };

console.log(damage());

编辑:

你忘记了()。 +如果不将其放在变量中,则值将不相同:

function attackButton() {
    var amount = damage()
    darkwarrior.hp = darkwarrior.hp - amount;
    console.log(darkwarrior.hp);
    console.log(amount);
}

答案 2 :(得分:0)

您只需使用表达式将值赋给变量即可。然后记录下来。然后回来。



var damage = function() {
    
   var num = Math.floor(Math.random() * 5 + 1);
   console.log(num);
   return num;
};

damage();




答案 3 :(得分:0)

这样的事情对你有用。



function NPC(startingLife, name) {
  this.hp = startingLife;
  this.name = name
}

NPC.prototype.takeDamage = function(amount) {
  this.hp = Math.max(this.hp - amount, 0);
  if (this.hp == 0) {
    console.log(this.name + " Dies");
  }
  return this.hp;
};

function damage() {
  return Math.floor(Math.random() * 5 + 1);
}

var darkwarrior = new NPC(4, 'Dark Warrior');

function attackButton() {
  var amount = damage();
  darkwarrior.takeDamage(amount);
  console.log("Dark Warrior took " + amount + " points of damage");
}

document.querySelector('#attack-button').addEventListener("click", attackButton);

<button id="attack-button">ATTACK!</button>
&#13;
&#13;
&#13;

答案 4 :(得分:-1)

您只是返回值而不是打印它。你应该用console.log替换return(