2014-01-16 78 views
1

我剛剛開始學習JavaScript,並決定用迄今爲止獲得的有限知識製作一個Rock-Paper-Scissors遊戲。不過,我想不通爲什麼它輸出控制檯日誌輸出整個功能,而不是返回的東西

I chose function (userChoice) 
    { 
     if(userChoice==="Rock") 
      return "Paper"; 

     if(userChoice==="Paper") 
      return "Scissors"; 

     if(userChoice==="Scissors") 
      return "Rock"; 
    }. I win noob. 

,而不僅僅是「我選擇搖滾,我贏了小白。」

這裏是我的代碼:

var main = function() 
{ 
    var yesno = confirm("Would you like to play Rock-Paper-Scissors?"); 

    if(yesno === false) 
     return "You're lame."; 

    var userChoice = prompt("Rock, Paper, or Scissors?"); 

    var cheat = function(userChoice) 
    { 
     if(userChoice==="Rock") 
      return "Paper"; 

     if(userChoice==="Paper") 
      return "Scissors"; 

     if(userChoice==="Scissors") 
      return "Rock"; 
    }; 

    return "I chose " + cheat + ". I win noob."; 
}; 

console.log(main()); 

我發現,它的工作原理是外及以上main功能移動cheat功能和調整一些事情,代碼按預期工作。我無法弄清楚爲什麼一種方法有效,而另一種方法不能。

回答

2

你忘了()

return "I chose " + cheat(userChoice) + ". I win noob."; 

隨着括號,JavaScript的字符串中插入函數而不是調用它,並插入結果。

+0

仍然不正確...沒有通過論證。 '作弊(userChoice)' – epascarello

+1

感謝您的快速回答!我有點尷尬,我錯過了那麼簡單明顯的哈哈。 – skyness

0

您需要通過cheat作爲一個功能 -

return "I chose " + cheat(userChoice) + ". I win noob."; 

你必須userChoice通過再次,由於function(userChoice)呼叫要求一個變量,並調用它userChoice。但是,實際上並不使用之前建立的userChoice變量。

相關問題