Moin Rolf,
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.
Die Firefox-JavaScript-Konsole sagt, dass eine var
erzeugt wird:
function foo1() { alert("foo1");}
const foo1 = function() { alert("const");};
// Uncaught SyntaxError: redeclaration of var foo1
Die Funktionsreferenz als const
zu deklarieren, schlägt auch in der umgekehrten Reihenfolge korrekt fehlt:
const foo = function() { alert('Const');};
function foo() { alert("foo1");}
// Uncaught SyntaxError: redeclaration of const foo
Viele Grüße
Robert