Zum Inhalt springen

JavaScript 'Globale' Variablen Verständigungsproblem

Erstellt am 10. Juni 2010 · Noch keine Antworten

Tags: Frage

sunixzs ·

Hallo,

evtl. kann mir wer etwas erklären:

var test = "Global"; // sofern es globale Variablen in JS ueberhaupt gibt
var f = function () {
	if ( typeof test != "string" ) test = "Funktion";
	alert(test);
}
f(); // Ausgabe: Global

Wenn ich in der Funktion nun in der Bedingung die Variable definiere (var test = "Funktion" ), dann erzeugt mein typeof ein "undefined":

var test = "Global";
var f = function () {
	if ( typeof test != "string" ) var test = "Funktion";
	alert(test);
}
f(); // Ausgabe: Funktion

als ob "test" zuvor nicht definiert wurde bzw. meine Bedingung "test" löscht oder sowas.

Hintergrund:
Ich brauche ein globales Objekt, welches ich in der einen Methode konfigurieren kann (ein Karten-Konfigurator) und in einer andere Methode (ein JavaScript-Login) weiter verarbeiten muss. Die Konfiguration darf nicht verloren gehen beim Login. Es werden nach dem Login bestimmte Funktionen für den User nachgeladen - z. B. "Konfiguration speichern".

Ich wollte sichergehen, dass mein Objekt korrekt erzeugt wird, falls außerhalb meiner Konfigurator-Methode meine "Globale Variable" nicht gesetzt wurde (mit 'if ( typeof myObj != "object" ) var myObj = {};'). Nun suchte ich stundenlang nach dem Fehler, den ich zwar beseitig habe, aber nicht verstehe.

Falls wer mehr dazu weiß - bitte was schreiben.

Danke und Gruß

sun

PS: Ich poste es in diesem Forum, weil es mein Lieblingsforum und eine Typo3-Seite ist, die ich gerade bearbeite.

Edith sagt: Irgendwie wurden Smilies erzeugt, die ich nicht setzte.