Werte von einer Javascript Datei an eine andere. Geht das?

BeachBoy

Mitglied
Hallo,

ich habe mal eine Frage, und zwar habe ich mit JavaScript ein Spiel programmiert. Jetzt habe ich eine Schwierigkeitsstufe dafür programmiert. Das Script befindet sich in einer externen Javascript Datei. Nun will ich noch eine zweite Schwierigkeitsstufe dazu programmieren. Wenn ich jetzt dieses in die gleiche Javascript Datei schreibe wird der Quelltext ziemlich lang und unübersichtlich. Ich habe mir überlegt eine zweite Javascript Datei dafür zu benutzen, allerdings funktioniert dies so leider gar nicht.
Jetzt meine Frage:
Kann man sowas überhaupt so machen, dass die eine Datei Werte von Variablen an die andere Datei übergibt? Wenn ja, kann mir jemand sagen wie? Wäre echt leichter nachher den überblick über die funktionen zu behalten.
Ansonsten bleibt mir nur, alles in eine Datei zu packen.

Schonmal Danke für die Antwort!
Sebastian
 
Wenn du Javascript-Dateien über <script src=....> einbindest ist das für Javascript genau so, als würde der JS-Code aus der Datei einfach in dem Dokument stehen - als wäre er quasi per Copy&Paste da eingefügt. D.h. es ist vollkommen egal ob du deinen Code auf eine, zwei, drei oder sonst wie viele Dateien aufteilst.

Wenn dabei in einer datei "var x=5;" steht und in der anderen "var x=6", dann hat x den Wert aus der zuletzt eingebundenen Datei. Das gleiche gilt für alles, im Besonderen für Funktionen mit gleichem Namen, da wird auch die eine durch die andere überschrieben. Wenn du das bedenkst und ein wenig Verstand einsetzt sollte dein Vorhaben gelingen.

Ich an deiner Stelle würde aber zunächst nur eine Datei laden und dann, wenn der Schwierigkeitsgrad umgestellt wird vom Benutzer die andere Datei nachladen über appendChild().
 
Zuletzt bearbeitet:
habe das Einbinden folgendermaßen gemacht:
Code:
<script type="text/javascript" src="script11.js"></script>
<script type="text/javascript" src="script12.js"></script>
das js sieht ausschnittsweise so aus:
in script11.js:
Code:
var spiel = 1;
function level11()
{
   if(spiel == 1) spiel11();
}

level11();
dort wird einfach beim laden des js die function level11() aufgerufen.
in script12.js:
Code:
function spiel11()
{
 bla bla bla
}
soweit so gut, es funktioniert nicht. Wenn ich im firefox in die Javascript Konsole gucke sagt er mir "spiel11 is not defined. Quelldatei script11.js"

Liegt der Fehler noch im Einbinden der Dateien? oder warum kommt dieser blöde Fehler?

Danke für die Hilfe,
Sebastian
 
Es dürfte an der Reihenfolge liegen, wie die Skriptdateien eingebunden werden.
Ein Dokument wird von oben nach unten gelesen, und nicht am Stück.

Drehe das mal um(also zuerst script12 einbinden).

Am Sinnvollsten wäre es, wenn du die Sache erst beim onload des Dokumentes startest...dann ist garantiert alles gelesen und bekannt.
 
ja danke für die super Antworten.
Habe es eben sofort nach der Arbeit ausprobiert und es lag wirklich an der Reihenfolge der scripte. Jetzt läuft alles wunderbar.
Trotzdem wundert es mich, dass es doch an der Reihenfolge liegt, da wenn ich normal mit nur "einer" Scriptdatei arbeite auch Funktionen aufrufe, die danach erst stehen und dabei funktioniert es so. Naja, jetzt bin ich schlauer.

Damit ist das Theme beendet. Erfolgreich! ;)
Besten Dank,
Sebastian
 
Zurück