好吧,有些东西一直困扰着我,而我却找不到答案。所以这里是Codeacademy的摇滚,纸张,剪刀游戏:
var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
computerChoice = "rock";
} else if(computerChoice <= 0.67) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
} console.log("Computer: " + computerChoice);
var compare = function(choice1, choice2){
if(choice1 === choice2) {
return "The result is a tie!";
}
else if(choice1 === "rock") {
if(choice2 === "scissors") {
return "rock wins";
}
else {
return "paper wins";
}
}
else if(choice1 === "paper") {
if(choice2 === "rock") {
return "paper wins"
}
else {
return "scissors wins"
}
}
else if(choice1 === "scissors") {
if(choice2 === "rock") {
return "rock wins"
}
else {
return "scissors wins"
}
}
};
compare(userChoice, computerChoice);
现在我想知道的是,当计算机将if用于判断获胜者的if / else循环时,它是如何知道choice1和choice2的含义?它是在userChoice和computerChoice函数上声明的,如果是这样的话怎么样?任何文档的链接都会有所帮助。我只想了解JavaScript的工作原理。谢谢!
答案 0 :(得分:0)
<script type="text/javascript">
function includeJS(incFile) {
document.write('<script type="text/javascript" src="'
+ incFile+ '"></script>');
}
// Load SOME_SPECIAL_EFFECTS on viewports above 700px wide
if (window.matchMedia("only screen and (min-width: 700px)").matches) {
includeJS('SOME_SPECIAL_EFFECTS.js');
}
</script>
是一个以compare
和choice1
为参数的函数。它们的值在调用函数时确定。例如,如果您有2个变量choice2
和foo
包含如下字符串:
bar
并调用var foo = 'rock';
var bar = 'paper';
传递这两个变量,如下所示:
compare
然后,在compare(foo, bar);
内,compare
将为choice1
,'foo'
将为choice2
。
对于字符串,这与调用'bar'
完全相同:
compare
如果您查看代码部分示例的其余部分,您会看到对compare('rock', 'paper');
的进一步调用。
答案 1 :(得分:0)
choice1
和choice2
是函数compare()
的参数,因此它们会在您调用函数时获取传递给函数的值。
使用compare(userChoice, computerChoice);
调用脚本末尾的比较功能。因此choice1
的值为userChoice
,而choice2
的值为computerChoice
。
computerChoice
在开始时是随机确定的,而userChoice
由用户输入确定