Rolf B: node express und pug

Beitrag lesen

Hallo Felix,

und diese Funktion könnte noch nicht verfügbar sein, weil sie erst im nächsten <script>-Element definiert wird

Ja, da war noch was. Ich hatte mich heute mittag mit dem Thema befasst, und mich blödsinnigerweise gewundert, warum

window.onload = "foo()";

nicht funktioniert. Ohne Worte - wie Matthias so gern sagt 😉

Darüber hab ich das Scope-Thema dann vergessen.

Du hast natürlich recht, wenn die Funktion in einem Script-Block definiert wird, der hinter dem Script-Block liegt, in dem onload zugewiesen wird, dann gibt's die Funktion noch nicht.

Innerhalb eines Scriptblocks findet die übliche Hebung von function und var Deklarationen statt, d.h.

window.onload = foo;

function foo() {
   alert("Foohoo!");
}

funktioniert. Aber weil der Browser die Scriptblöcke so ausführt, wie sie kommen, klappt es in zwei Scriptblöcken nur dann, wenn die Definition der Funktion gelaufen ist, bevor onload zugewiesen wird.

Rolf

--
sumpsi - posui - obstruxi