为什么可以';我不能从javascript中的另一个函数调用函数吗? 数学游戏 函数猜测(){ var userGuess=prompt(“猜测一个小于50的正数”); var userRandomNumber=Math.floor(Math.random()*49)+1; 检查(userGuess、userRandomNumber); } 功能检查(猜测、随机数){ if(parseInt(guess)=50){ 警报(“请输入给定范围内的数字”); 猜(); } else if(parseInt(guess)==randomNumber){ 警惕(“你猜对了号码!”); }else if(parseInt(guess)>随机数){ 警报('对不起,号码是'+randomNumber'); }否则{ 警报('对不起,号码是'+randomNumber'); } }
这是一个数字猜测游戏,如果用户输入的数字超出范围,我想提示用户再次输入一个数字函数。但这段代码不会给出结果。我是否需要像在Java中一样创建guess类型的对象?如果是这样的话,我如何正确创建对象?非常感谢您的帮助=)您对函数和参数使用了相同的名称:为什么可以';我不能从javascript中的另一个函数调用函数吗? 数学游戏 函数猜测(){ var userGuess=prompt(“猜测一个小于50的正数”); var userRandomNumber=Math.floor(Math.random()*49)+1; 检查(userGuess、userRandomNumber); } 功能检查(猜测、随机数){ if(parseInt(guess)=50){ 警报(“请输入给定范围内的数字”); 猜(); } else if(parseInt(guess)==randomNumber){ 警惕(“你猜对了号码!”); }else if(parseInt(guess)>随机数){ 警报('对不起,号码是'+randomNumber'); }否则{ 警报('对不起,号码是'+randomNumber'); } },javascript,function,methods,Javascript,Function,Methods,这是一个数字猜测游戏,如果用户输入的数字超出范围,我想提示用户再次输入一个数字函数。但这段代码不会给出结果。我是否需要像在Java中一样创建guess类型的对象?如果是这样的话,我如何正确创建对象?非常感谢您的帮助=)您对函数和参数使用了相同的名称:guess 将参数名称更改为其他名称: 数学游戏 函数猜测(){ var userGuess=prompt(“猜测一个小于50的正数”); var userRandomNumber=Math.floor(Math.random()*49)+1;
guess
将参数名称更改为其他名称:
数学游戏
函数猜测(){
var userGuess=prompt(“猜测一个小于50的正数”);
var userRandomNumber=Math.floor(Math.random()*49)+1;
检查(userGuess、userRandomNumber);
}
函数检查(猜测数、随机数){
if(parseInt(猜测数)=50){
警报(“请输入给定范围内的数字”);
猜();
}
else if(parseInt(guessNumber)==randomNumber){
警惕(“你猜对了号码!”);
}else if(parseInt(guessNumber)>randomNumber){
警报('对不起,号码是'+randomNumber');
}否则{
警报('对不起,号码是'+randomNumber');
}
}
您对函数和参数使用了相同的名称:guess
将参数名称更改为其他名称:
数学游戏
函数猜测(){
var userGuess=prompt(“猜测一个小于50的正数”);
var userRandomNumber=Math.floor(Math.random()*49)+1;
检查(userGuess、userRandomNumber);
}
函数检查(猜测数、随机数){
if(parseInt(猜测数)=50){
警报(“请输入给定范围内的数字”);
猜();
}
else if(parseInt(guessNumber)==randomNumber){
警惕(“你猜对了号码!”);
}else if(parseInt(guessNumber)>randomNumber){
警报('对不起,号码是'+randomNumber');
}否则{
警报('对不起,号码是'+randomNumber');
}
}
简短回答
将check
函数中的参数guess
重命名为其他参数
详细答案
check
函数guess
中的参数正在函数的局部范围内创建名为guess
的变量
当您将其名称更改为其他名称时,请说guessnumber
。它不会在函数的局部作用域中找到guess
,会尝试访问父作用域(在您的情况下是全局作用域)中同名的变量,它会找到名为guess
的函数,您的代码会工作得非常好
为了理解这一点,您也可以将check
函数中对guess
函数的调用从guess()
更改为window.guess()
,这也将使您的代码功能正确(在这种情况下,它将直接在全局范围内查找名为guess
的函数,但不建议使用这种方法
阅读更多内容简短回答 将
check
函数中的参数guess
重命名为其他参数
详细答案
check
函数guess
中的参数正在函数的局部范围内创建名为guess
的变量
当您将其名称更改为其他名称时,请说guessnumber
。它将不会在函数的本地范围中找到guess
,并将尝试访问父范围(在您的情况下是全局范围)中具有相同名称的变量它将找到名为guess
的函数,您的代码将运行得非常好
为了理解这一点,您也可以将check
函数中对guess
函数的调用从guess()
更改为window.guess()
,这也将使您的代码功能正确(在这种情况下,它将直接在全局范围内查找名为guess
的函数,但不建议使用这种方法
阅读更多非常感谢您的帮助和解释非常感谢您的帮助和解释
<!DOCTYPE HTML>
<head>
<title>
Math game</title>
</head>
<body onload = "guess()">
<script>
function guess(){
var userGuess = prompt("Guess a positive number less than 50");
var userRandomNumber = Math.floor(Math.random() * 49) + 1;
check(userGuess,userRandomNumber);
}
</script>
<script>
function check(guess,randomNumber){
if(parseInt(guess)<0 ){
alert('Please enter a number in the given range');
guess();
}else if(parseInt(guess)>=50){
alert('Please enter a number in the given range');
guess();
}
else if (parseInt(guess) === randomNumber ) {
alert('You guessed the number!');
} else if(parseInt(guess) > randomNumber ) {
alert('Sorry. The number was ' + randomNumber);
}else{
alert('Sorry. The number was ' + randomNumber );
}
}
</script>
</body>
</html>