显示函数的参数
Display the parameter of a function
我试图通过使用函数参数来显示我的名字,但是,我收到错误消息超出最大调用堆栈大小 在运行我的代码时。
我必须能够通过参数更改显示的名称。
var naam;
function groet(naam){
var naam = groet();
console.log("Hey " + naam);
return naam;
}
groet("Rick");
有什么帮助吗?干杯!
当您调用 groet("Rick")
时,它会调用 groet()
,后者会调用 groet()
,而 groet()
会调用 groet()
...
像这样使用参数。
function groet(naam){
console.log("Hey " + naam);
}
groet("Rick");
你的函数是递归的(它调用自己)。您缺少递归工作的关键要求,即基本情况。基本情况是您不再调用函数本身的条件。
由于 OP 没有回答问题,因此很难确定他们的困惑在哪里。我猜他们不明白recursion(一个调用自己的函数):
function groet(naam){
var naam = groet();//Call to self
console.log("Hey " + naam);
return naam;
}
此实现缺少 recursive termination。递归算法需要有一个条件,该条件最终会阻止方法调用自身。
这个算法缺少这样的条件,所以我们得到的异常基本上告诉我们我们调用了我们的函数无限次。
OP 给了我们这个条件:
I have to be able to change the displayed name through the parameter.
为此,我们只需要像 Ben West 发布的那样:
function groet(naam){
console.log("Hey " + naam);
return naam;
}
groet("Rick");
因为变量的本质就是...变量。没有必要递归来解决具有变量名的问题。因此可以删除递归。 OP 可能需要 return naam
。例如,如果 naam
是一个人为的例子,而实际上他们在实现中修改了 naam
的值。默认情况下 JavaScript 将 return 在这里未定义。
我试图通过使用函数参数来显示我的名字,但是,我收到错误消息超出最大调用堆栈大小 在运行我的代码时。 我必须能够通过参数更改显示的名称。
var naam;
function groet(naam){
var naam = groet();
console.log("Hey " + naam);
return naam;
}
groet("Rick");
有什么帮助吗?干杯!
当您调用 groet("Rick")
时,它会调用 groet()
,后者会调用 groet()
,而 groet()
会调用 groet()
...
像这样使用参数。
function groet(naam){
console.log("Hey " + naam);
}
groet("Rick");
你的函数是递归的(它调用自己)。您缺少递归工作的关键要求,即基本情况。基本情况是您不再调用函数本身的条件。
由于 OP 没有回答问题,因此很难确定他们的困惑在哪里。我猜他们不明白recursion(一个调用自己的函数):
function groet(naam){
var naam = groet();//Call to self
console.log("Hey " + naam);
return naam;
}
此实现缺少 recursive termination。递归算法需要有一个条件,该条件最终会阻止方法调用自身。
这个算法缺少这样的条件,所以我们得到的异常基本上告诉我们我们调用了我们的函数无限次。
OP 给了我们这个条件:
I have to be able to change the displayed name through the parameter.
为此,我们只需要像 Ben West 发布的那样:
function groet(naam){
console.log("Hey " + naam);
return naam;
}
groet("Rick");
因为变量的本质就是...变量。没有必要递归来解决具有变量名的问题。因此可以删除递归。 OP 可能需要 return naam
。例如,如果 naam
是一个人为的例子,而实际上他们在实现中修改了 naam
的值。默认情况下 JavaScript 将 return 在这里未定义。