Поскольку ОП не отвечает на вопросы, довольно сложно определить, в чем заключается их путаница. Я предполагаю, что они не понимают рекурсию (функция, которая вызывает себя):
function groet(naam){
var naam = groet();//Call to self
console.log("Hey " + naam);
return naam;
}
В этой реализации отсутствует рекурсивное завершение . Рекурсивные алгоритмы должны иметь условие, которое в конечном итоге остановит метод от вызова самого себя.
В этом алгоритме отсутствует такое условие, поэтому мы получаем исключение, которое в основном говорит нам, что мы называем нашу функцию бесконечное число раз.
ОП дал нам это условие:
Я должен иметь возможность изменять отображаемое имя с помощью параметра.
Для этого все, что нам нужно, это что-то вроде Бена Уэста:
function groet(naam){
console.log("Hey " + naam);
return naam;
}
groet("Rick");
Потому что переменная по своей природе ... переменная. Рекурсия не обязательна для решения проблемы с именем переменной. Таким образом, рекурсия может быть удалена. ОП может потребоваться return naam
. Если, например, naam
является надуманным примером и в действительности они изменяют значение naam
в реализации. По умолчанию JavaScript вернет здесь неопределенное значение.