显示函数的参数

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 在这里未定义。