Rekursionen in Javascript

Rekursionen - Funktiuonen die sich selber aufrufen können.

Rekursionen ermöglichen eine unbegrenzte Anzahl von gleichen Verarbeitungsschritten. Wenn keine Abbruchbedingung bzw. keine Rückkehr ab einer bestimmten Tiefe vollzogen wird, füllt sich der Speicher, der sich die aktuelle Position merkt. Die Folge ist ein Speicherüberlauf. Je nach Anwendung und Umgebung des Computers kann das zu einem Versagen der Rechnerfunktion fürhen, die man nur mit einem Neustart beseitigen kann.

Vorteil von Rekursionen sind u.A. dass eine Baumartige struktur durchlaufen kann. Diese Anforderung findet man häufig bei Spielen und Wahrscheinlichkeitsrechnungen aber auch bei strukturierten Dokumenten wie XML.

Beispiel 1 einer rekursiven Funktion in Javascript:

var startwert = 0;
var schritte = 1;
var abbruchbedingung = 5;

zaehle( startwert , schritte , abbruchbedingung );

function zaehle( aktueller_wert , schritte , abbruchbedingung ){
	
	console.log( " aktueller Wert " + aktueller_wert + " \n" );
	
	if( abbruchbedingung === aktueller_wert ){
		return;
	}
	
	zaehle( aktueller_wert + schritte , schritte , abbruchbedingung );
	
}

aktueller Wert 0
aktueller Wert 1
aktueller Wert 2
aktueller Wert 3
aktueller Wert 4
aktueller Wert 5


Beispiel 2 mit verbesserter Lesbarkeit für den Programmierer

// Verbesserte Variante mit mehr Intuition beim Lesen des Codes

// Argumente als Objekt
zaehle( {
	"wert" : 0 , 
	"schritte" : 1 , 
	"abbruchbedingung" : 5 
} );

function zaehle( arg_list ){
	
	// Ausgabe
	console.log( " aktueller Wert " + arg_list.wert + " \n" );
	
	// Prüfung
	if( arg_list.abbruchbedingung === arg_list.wert ){
		return;
	}
	
	// Manipulation
	arg_list.wert++;

	// Rekursiver Aufruf
	zaehle( arg_list );
	
}