Digamos que tengo una función complicada que, a través de posteriores llamadas a funciones anidadas, puede potencialmente llamarse a sí misma, ¿hay algún método aceptado para evitar esta llamada recursiva en el caso de que no sea deseable?
p.ej:
function h() { if(someOtherState) f(); // uh-oh } function g() { if(someState) h(); } function f() { g(); }Invocando la Ley de Cunningham aquí (no soy realmente un desarrollador de JS), una forma en que descubrí que funciona es:
function f() { if(f.inFunction) return; f.inFunction = true; // Some complicated/non-deterministic code that may call f() again f.inFunction = false; }