为什么可以';我不能从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中的另一个函数调用函数吗? 数学游戏 函数猜测(){ 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;

这是一个数字猜测游戏,如果用户输入的数字超出范围,我想提示用户再次输入一个数字函数。但这段代码不会给出结果。我是否需要像在Java中一样创建guess类型的对象?如果是这样的话,我如何正确创建对象?非常感谢您的帮助=)

您对函数和参数使用了相同的名称:
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>