Sie können nicht explizit zwei Variablen aus einer einzelnen Funktion zurückgeben, aber es gibt verschiedene Möglichkeiten, die beiden Variablen zu verketten, um sie zurückzugeben.
Wenn Sie die Variablen getrennt nicht halten müssen, können Sie sie einfach direkt wie folgt verketten:
function test(){
var h = 'Hello';
var w = 'World';
var hw = h+w
return (hw);
}
var test = test();
alert(test);
Dieses „Hello World“ würde alarmieren. (Wenn Sie einen Raum dort wollten, sollten Sie var hw = h+" "+w
stattdessen
Wenn Sie die beiden Variablen getrennt halten müssen, können Sie sie in ein Array platzieren wie so:.
function test(){
var h = "Hello";
var w = "World";
var hw=[h,w];
return hw;
}
var test = test();
alert(test);
Dies ermöglicht die h
und w
Werte immer noch individuell zugegriffen werden als test[0]
und test[1]
. Allerdings wird Alert (Test) hier angezeigt "Hallo, Welt" wegen der Art, wie alert() behandelt Arrays (dh es druckt eine durch Kommas getrennte Liste von jedes Element im Array der Reihe nach.) Wenn Sie die gleiche Ausgabe wie in Ihrem Beispielcode erzeugen möchten, müssen Sie etwas wieverwenden. join()
wird eine Zeichenfolge aus einem Array erstellen, es braucht ein Argument, das als Trennzeichen zwischen den Elementen dient. Um die beiden Warnungen aus meinem ersten Beispiel zu reproduzieren, müssten Sie alert(test.join(""))
bzw. alert(test.join(" ")
verwenden.
Mein Beispiel könnte leicht verkürzt werden, indem man die Erstellung der hw
Variable überspringt und nur ein Array direkt zurückgibt. In diesem Fall Test() würde wie folgt aussehen:
function test(){
var h="Hello";
var w="World";
return [h, w];
}
Dies auch als Objekt mit return { h : h, w : w };
, wobei in diesem Fall getan werden könnte, um die einzelnen Variablen wie test.h und test.w jeweils zugreifen würde.
Auch: http: // stackoverflow.com/questions/10221445/return-multiple-variables-from-a-javascript-funktion – bfavaretto