node express und pug
bearbeitet von
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
~~~js,bad
window.onload = "foo()";
~~~
nicht funktioniert. 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.
~~~js
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