Hugo: Warum ist die Variable nicht im Scope (und wie greife ich dann auf sie zu)?

Beitrag lesen

Ok, bitte nicht erschlagen, für das was jetzt folgt :/

...ich habe den Code auf das Wesentliche reduziert, wer das Original sehen will, bitte melden, dazu empfehle ich aber starke Kopfschmerztabletten.

Prinzipiell soll der ganze Spuk einem modularen funktionellen Aufbau dienen, soll heißen, die Funktionen sollen unabhängig voneinander aufrufbar sein (so wird leiderNochEineFunktion z.B. im Original noch an anderen Stellen verwendet):


function ersteFunktion(eingabe_aussen) {
	return function(eingabe_innen) {
		let zaehler = 0;
		leiderNochEineFunktion(eingabe_aussen)(eingabe_innen);

	}
}

function leiderNochEineFunktion(zweite_aussen) {
	return function(zweite_innen) {
		zaehler++;
		console.log(`${zweite_aussen} ${zweite_innen} ${zaehler}`);

	}
}

ersteFunktion("Erste Iteration")("Zweite Iteration");

// UNCAUGHT REFERENCE ERROR: zaehler IS NOT DEFINED

Wie kann ich auf Zaehler zugreifen?

...ich will ja auf die Originalvariable zugreifen, daher kann ich ihn nicht einfach als Argument übergeben.

Eigentlich müsste zaehler ja auch im Scope sein, so wie ich das sehe:

(...) >> let zaehler >> leiderNochEineFunktion >> function >> Zugriff auf zaehler

Danke für eure Hilfe!

(zaehler als globale Variable funktioniert witzigerweise ... aber kann ja auch nicht im Sinne des Erfinders sein, wenn ich den globalen Namespace zumülle…)