2 Stimmen

Javascript-Variablendeklarationen nach der Rückgabeanweisung

Ich habe mir einen minimierten JavaScript-Code (von GitHub) angesehen, und der Code enthält einen Block, der so aussieht

h = function(a, b, c, d) {
        var e, h, i, j, k, l, m = this;
        return i = $("#js-frame-loading-template").clone().show(), l = c === "back" ? 350 : 500, j = i.find(".js-frame-loading-spinner").hide() // mehr hier

Ich frage mich, warum/wie dieser Code funktioniert, da es Variablendeklarationen nach der Rückgabeanweisung gibt

6voto

Felix Kling Punkte 751464

Lassen Sie mich Ihnen den Komma-Operator vorstellen.

Alles rechts von der return-Anweisung ist ein Ausdruck, der aus mehreren "Teil-Ausdrücken" besteht, die durch Kommas getrennt sind:

return a, b, c, d;

Jeder Teil-Ausdruck wird von links nach rechts ausgewertet, und der Wert des letzten ist das Ergebnis des gesamten Ausdrucks. Das Ergebnis des letzten Ausdrucks wird in diesem Fall zurückgegeben (die Ergebnisse der Auswertung von d und was auch immer sich in // mehr Zeug hier versteckt in Ihrem Beispiel verbirgt).

Es ist ein "Trick", um mehrere Ausdrücke in einen zu packen.


Pedantismus:

[...] da es Variablendeklarationen nach der return-Anweisung gibt

Es gibt keine Variablendeklarationen in dieser Zeile, nur Zuweisungsausdrücke. Sie könnten dort keine var-Anweisung (eine Variablendeklaration) haben, weil der Komma-Operator (und die return-Anweisung) nur mit Ausdrücken, nicht mit Anweisungen, funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X