Supportnet / Forum / Webseiten/HTML
Eingebettetes JavaScript, Verständnisproblem
Frage
Nabend zusammen,
Ich bin auf ein etwas komisches Konstrukt gestoßen, das bei mir zu leichten Verständnisproblemen führt.
JavaScript XY wird erst einmal ganz normal in eine HTML-Datei eingebettet. Das sieht dann ungefähr wie folgt aus:
[code]<script type="text/javascript" src="http://www.domain.tld/path/to/script.js"></script>[/code]
Das Script (das mir Kopfzerbrechen bereitet), sieht ungefähr wie folgt aus:
[code]
(
function() {
eineFunktion() {
// tue irgendetwas.
nochEineFunktion();
}
nochEineFunktion() {
// tue irgendetwas anderes.
}
eineFunktion();
}
)()
[/code]
Was bewirkt hier diese Klammer am Anfang? Und das Klammernkonstrukt am Ende?
Ich hab´ schon SelfHTML herbemüht -- leider lässt sich über dieses Verfahren nicht wirklich etwas finden. Kann mir jemand etwas über dieses Verfahren sagen? Oder zumindest Schlagwörter nennen, nach denen man passend suchen könnte? Bisher war ich erfolglos.
Grüße,
rabies.
Antwort 1 von rfb
Schlagworte "JSON" und "unobstrusive JavaScript"
Antwort 2 von rabies
Nach langem Herumgooglen und diversen Versuchen mit dem Konstrukt
scheint es für mich nun so, dass in dem ersten Klammernpaar (samt der Funktion; die scheint ein Muss zu sein) ein Ausdruck steht und das zweite Klammernpaar einzig und allein dazu da ist, den Ausdruck im ersten Klammernpaar auszuführen. Kann man das ungefähr so sagen?
(
function() {
// irgendwelcher Code.
}
)()scheint es für mich nun so, dass in dem ersten Klammernpaar (samt der Funktion; die scheint ein Muss zu sein) ein Ausdruck steht und das zweite Klammernpaar einzig und allein dazu da ist, den Ausdruck im ersten Klammernpaar auszuführen. Kann man das ungefähr so sagen?
Antwort 3 von rfb
so ungefähr mag das stimmen. Das Klammerpaar am Ende bewirkt dass der Inhalt der anonymen Funktion ausgeführt wird.
Das ganze sorgt also dafür, dass etwas zwar sofort erledigt wird, so als ob der Inhalt dort ohne Klammern stünde, aber dennoch alles unobstrusive - hier: ohne andere Funktionen zu stören - lokal abläuft.
Eine abgekürzte Schreibweise also für ungefähr dies:
Das ganze sorgt also dafür, dass etwas zwar sofort erledigt wird, so als ob der Inhalt dort ohne Klammern stünde, aber dennoch alles unobstrusive - hier: ohne andere Funktionen zu stören - lokal abläuft.
Eine abgekürzte Schreibweise also für ungefähr dies:
function tuwat() {
eineFunktion() {
// tue irgendetwas.
nochEineFunktion();
}
nochEineFunktion() {
// tue irgendetwas anderes.
}
eineFunktion();
}
tuwat();Antwort 4 von rabies
Okay, danke Dir. :)

