Javascript:如何获取函数的值?

Javascript:如何获取函数的值?,javascript,html,css,Javascript,Html,Css,我正在做一个快速游戏,玩家在游戏中伤害敌人npc。我在下面有一个函数来计算损失,但是我不能让控制台日志说我正在做“X”数量的损失。我做错了什么?相反,它只是调出函数语句,但我希望它给我函数值 var damage = function() { return Math.floor(Math.random() * 5 + 1); }; 我在另一个代码中正确地调用了我的函数,但是当我试图在另一个代码中记录损坏时,我得到了一个错误 function attackButton() {

我正在做一个快速游戏,玩家在游戏中伤害敌人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);

您只是返回值,而不是打印它。您应该改为将return替换为console.log(

如果您运行
console.log(damage());
您将获得“X”的损坏量,而不是function语句。因此您可以将
attackButton()
函数更改为:

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

我不确定是否理解,是否要记录结果?如果是,您可以这样做:

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);
}

您只需使用表达式将值赋给变量,然后记录它,然后返回它

var损害=函数(){
var num=Math.floor(Math.random()*5+1);
console.log(num);
返回num;
};

损坏();
这样的东西应该适合你

函数NPC(启动寿命,名称){
this.hp=启动寿命;
this.name=name
}
NPC.prototype.takeDamage=功能(金额){
this.hp=Math.max(this.hp—金额,0);
如果(this.hp==0){
console.log(this.name+“Dies”);
}
退回这个.hp;
};
功能损害(){
返回Math.floor(Math.random()*5+1);
}
var darkwarrior=新NPC(4,“黑暗战士”);
函数攻击按钮(){
风险价值=损失();
暗器损坏(金额);
console.log(“黑暗战士受到”+数量+”点伤害”);
}
document.querySelector(“#攻击按钮”).addEventListener(“单击”,攻击按钮);

ATTACK!
可能是因为您没有调用它-
damage()
?您如何调用您的函数?他想做一个计算数量的函数。我猜日志是为了调试。console.log()只显示值。或者你可以说只是打印它。它不会返回。这只会使它运行两次函数,并给我一个与第一次运行时不同的数字。这很有效。我想我必须将函数放在我的单击按钮中,使其单独运行。谢谢你的帮助:)他想显示函数的结果,不在函数中。