dedlfix: Variable in Funktion definieren und außerhalb sichtbar machen

Beitrag lesen

Tach!

...und zwar würde ich gern über eine Funktion eine Variable kreiern, deren Name ich der Funktion bei Aufruf übergebe, so in die Richtung:

Das liest sich nicht wie ein erstrebenswertes Vorgehen, aber in Ermanglung des Wissens, was du eigentlich zu lösen versuchst, hier eine Antwort dazu.

function varName(var_Name) {
	var var_Name = "Wert";
}
varName(Variable);
console.log(Variable); // ReferenceError: Variable is not defined

Der Fehler ist berechtigt, denn du möchtest der Funktion varName() einen Namen und nicht die Variable selbst übergeben. Der Name ist in dem Fall ein String und der muss in Anführungszeichen notiert werden.

Doch der String allein reicht nicht, um die Variablen dementsprechend anlegen zu können. Dazu muss man noch wissen, dass globale Variablen Eigenschaften des window-Objekts sind. Und wie man Eigenschaften ansprechen kann, wenn man deren Namen als String vorliegen hat, nämlich so:

var name = 'foo'; // hier explizit angelegt, du bekommst aber den Namen als Parameter übergeben
ein_objekt[name] = 42;

Das entspricht

ein_objekt.foo = 42;

Das geht in der Form auch mit dem window-Objekt. Also, zusammengebaut sieht das so aus:

function varName(var_Name) {
	window[var_Name] = "Wert";
}
varName('Variable');
console.log(Variable);

Wenn du möchtest, kannst du ja mal schreiben, was du eigentlich lösen möchtest, vielleicht findet sich ja eine bessere Vorgehensweise.

dedlfix.