[英]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.