簡體   English   中英

Javascript:如何獲取函數的值?

[英]Javascript: How to get the value of a function?

我正在制作一款快速游戲,玩家在游戲中會傷害敵方NPC。 我下面有一個函數來計算損壞,但是我無法獲得控制台日志來說明我正在造成“ X”倍的損壞。 我究竟做錯了什么? 取而代之的是,它只是拉出function語句,但是我希望它給我功能值!

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

我在另一個代碼中正確調用了我的函數,但是當我嘗試在另一個代碼中控制台記錄損壞時,我得到了一個錯誤。

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

如果您運行console.log(damage()); 您將獲得“ X”的損害賠償額而不是功能聲明。 因此,您可以將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 damage = function() { var num = Math.floor(Math.random() * 5 + 1); console.log(num); return num; }; damage(); 

這樣的事情應該為您工作。

 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> 

您只是返回值而不是打印它。 您應該改為用console.log(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM