Рассмотрим следующий блок псевдокода:
async function someFunction(){
if (condition is met){
...
...
...
someFunction();
}
else{
...
...
...
someOtherFunction();
}
}
Будет ли каждый раз, когда вы вызываете someFunction()
, выделять для него память и все же сохранять someFunction()
, который сделал вызов, в памяти или JavaScript достаточно умен, чтобы понять, что как только someFunction()
вызывает саму себя, функция, которая вызывала вызов, больше не нужна и ей не нужно будет оставаться в памяти. Обратите внимание, что someFunction()
не принимает никаких аргументов. Я считаю, что если бы он принимал аргументы, его всегда нужно было бы сохранять в памяти, но я мог ошибаться.
Если вышеупомянутая реализация по-прежнему сохраняет каждый вызов функции в памяти, то что было бы правильным делать? . Было бы return someFunction()
в блоке if
?