Rolf B: node: eigenartiger Fehler

Beitrag lesen

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