હેલો
Ist „url“ im 2. Bsp. Global, wenn ich es so schreibe? Ich ging davon aus, dass Variablen Global werden, wenn ich das „var“ vor dem Variablennamen weglasse?
Du liegst richtig, url ist in beiden Beispielen global.
Ich nehme mal an, dass war ein Schreibfehler? Ansonsten wäre ich etwas irritiert :)
Aber der Unterschied ist, dass der Code der anonymen Funktion in Beispiel 1 *sofort* ausgeführt wird, der in Beispiel 2 erst, wenn die Funktion ausdrücklich aufgerufen wird.
Das fiel mir schon auf, als ich die Beispiele aufschrieb. Ich muss mal schauen, ob ich was damit anfangen kann. Ich lerne gerade, wie ich mit JQuery alles in Funktionen auslagere*, da wird das sicherlich hilfreich sein.
// Code-Block 1
(function()
{ var x1 = 42;
// ...
// irgendwelcher Code
}) ();// Code-Block 2
var x2 = 24;
// ...
// irgendwelcher Code
>
> Sowohl Block 1 als auch Block 2 werden sofort ausgeführt, wenn das Dokument bzw. das Script geparst wird. Aber x1 ist lokal in einer Funktion gekapselt, also global nicht sichtbar. Dagegen liegt x2 im globalen Scope (es ist automatisch eine Eigenschaft des window-Objekts), weil es nicht gekapselt ist.
Das heisst, die Anonyme Funktion macht nur etwas, dessen Resultat nur in diesem Moment, und nur an dieser Stelle gebraucht wird? Also eher selten?
Wobei, was nützt mir das Resultat einer Funktion, auf das ich gar nicht zugreifen kann?
> Wichtig ist, dass das Element, dessen Ereignisse du überwachen willst, zu dem Zeitpunkt schon existiert.
Kann es hier trotzdem zu unerwarteten komplikationen kommen, z. B. das Elemente, die definitiv im DOM sind, dennoch mit Jquery nicht ansprechbar sind? Ich häng meine Scripte immer ans body-ende, brauch aber trotzdem für das ein oder andere noch `$(document).ready`{:.language-javascript}.
બાય
--
.
..: