Hallo MudGuard,
damit hast Du exakt getroffen. Danke.
function foo() {
alert("Foo1!");
}
function foo() {
alert("Foo2!");
}
foo();
gibt kommentarlos Foo2! aus.
Schlimmer noch - das function-Statement erzeugt keinen const-Wert, sondern eher einen var- oder let-Wert:
function foo() { alert("Foo1!"); }
foo = function() { alert("Uups!"); };
function foo() { alert("Foo2!"); }
foo();
gibt Uups! aus. Die beiden function-Statements werden nach oben gehoben (hoisting), d.h. die Zuweisung an foo erfolgt de facto hinter den beiden function statements.
Mehr dazu bei MDN und auch in unserem Wiki.
Rolf
--
sumpsi - posui - obstruxi
sumpsi - posui - obstruxi