2016-05-13 8 views
0

Ich erwarte, wie eine Funktion erstellen zu können:wie man const function javascript (syntaktischer Zucker) definiert?

const function doSomething(){...} 

sieht doch wie der einzige Weg, um es zu erreichen ist:

const doSomething=function(){...} 

Bin ich falsch? oder gibt es eigentlich einen syntaktischen Zucker dafür?

+0

was genau versuchen Sie in der ersten? oder die zweite auch. Was versuchst du zu machen? – Hogan

+1

JS "const" ist nicht dasselbe wie C++ 'const'. Es zeigt nicht an, was die Funktion überhaupt macht. – ssube

+0

Wenn Sie nicht versuchen, eine Funktion einen konstanten Wert zurückgeben zu lassen, versuchen Sie einfach zu vermeiden, dass sie neu zugewiesen und folglich geändert werden kann. – caeus

Antwort

2

Das einzige, was in JavaScript const ist, verhindert die Neuzuweisung einer Variablen. Nicht zu verwechseln mit der Verhinderung der Mutation eines Wertes.

const erfordert eine Kennung, einen Zuweisungsoperator und eine rechte Seite. Die einzige Möglichkeit, const mit einer Funktion zu kombinieren, ist ein Funktionsausdruck (Ihr zweites Beispiel).

const doSomething = function() { 
    // do stuff 
}; 
// will either throw an error or the value of doSomething simply won't change 
doSomething = somethingElse; 

Viele Leute mögen ihre Funktionen genannt, um sicherzustellen, so dass der Name in dem Call-Stack angezeigt wird, und als solche bevorzugen Funktionsdeklarationen (Ihr erstes Beispiel) zu verwenden. Es ist jedoch möglich, einen Funktionsausdruck zu benennen.

const doSomething = function doSomething() { 
    // name will appear as doSomething in the call stack 
}; 
+1

Hinweis: In einer echten ES6-Umgebung oder bei Babel wird der Funktionsname automatisch hinzugefügt, sodass Sie eine anonyme Funktion zuweisen können, ohne sich Gedanken über die Debugfähigkeit des Aufruf-Stacks machen zu müssen. – loganfsmyth

Verwandte Themen