Helgor: Wie Variable als Argument einer Funktion übergeben?

Beitrag lesen

Hallo, ich versuche gerade, eine rekursive Funktion (hier rinseNrepeat) zu schreiben, die ich möglichst allgemein halten will, damit ich sie mehrmals flexibel einsetzen kann (und so unnötige Redundanzen vermeide).

Diese Funktion beinhaltet nun leider ein setTimeout, welches von außerhalb der Funktion wieder gecleared werden soll, hier exemplarisch auf button click. Dazu muss ich das Timeout in einer von außerhalb des Funktionsscope zugänglichen Variable speichern (damit der Button Zugriff hat).

Wenn ich die setTimeout-Variable aber innerhalb der Funktion hardcode, so ist diese nicht mehr flexibel gehalten und allgemein überall verwendbar, daher wollte ich die Variable, in der das setTimeout gespeichert wird, als Argument der Funktion übergeben. Dazu definiere ich zuerst ein Objekt (hier: varSammelobjekt). In diesem Objekt will ich nun die Timeouts speichern, nach dem Schema

varSammelobjekt = {
	Timeout1: setTimeout(rinseNrepeat, 1000),
	// etc.
};

Das funktioniert leider nicht so, wie ich mir das vorstelle. Was mache ich falsch, wie mache ich's richtig?

Der Kot:

const stopDenWahnsinn = document.getElementById("stopDenWahnsinn"); // im DOM ein Button mit dieser ID
let varSammelobjekt = {};

function rinseNrepeat(timeoutVar) {
	console.log("Hallo aus Funktion");
	// Weiterer Code
	timeoutVar = setTimeout(rinseNrepeat, 1000);
}
rinseNrepeat(varSammelobjekt["Timeout1"]);

stopDenWahnsinn.addEventListener("click", () => {
	clearTimeout(varSammelobjekt["Timeout1"]);
	// tut nix X(
});

Dank euch mit Herzlichkeit