Christian Schubert: Best Practice zur Reinitialisierung von Variablen

Beitrag lesen

Hey ho,

Ich habe eine Abfolge von Funktionen, die hintereinander aufgerufen werden (a.k.a. "Programm" 😎). Dieses Programm wird unter bestimmten Voraussetzungen reinitialisiert und erneut durchlaufen, daher müssen alle Variablen, die sich im global Namespace befinden, zurückgesetzt werden (quasi auf undefined).

Nun habe ich nach bestem Wissen und Gewissen versucht, den global Namespace nicht mit Variablen zu verschmutzen, das scheint aber unter gewissen Voraussetzungen unabdingbar (ruft z.B. Funktion A eine rekursive Timout Funktion auf, welche in Funktion B wieder eingefangen werden muss [clearTimeout()], so muss das Timeout selbst in einer für beide Funktionen zugänglichen Variable gespeichert werden, usw. - von mir aus auch requestAnimationFrame() / cancelAnimationFrame(), etc.).

Definiere ich also zu Beginn let foo, bar, baz; , so muss ich für den erneuten Durchlauf des Programms eine Reinitialisierungsfunktion à la

function initVars() {
	foo = undefined;
	bar = undefined;
	// (...)
	baz = undefined;
}
initVars();

starten. Diese Methode erscheint mir gar barbarisch, gibt's dafür einen eleganteren / besseren / ...ultimativ RICHTIGEN Best Practice Usecase?

Danke für eure Gedanken, Christian.

😏