Ответ 1
Вы не можете явно возвращать две переменные из одной функции, но есть несколько способов, которыми вы могли бы объединить две переменные, чтобы вернуть их.
Если вам не нужно разделять переменные, вы можете просто связать их прямо следующим образом:
function test(){
var h = 'Hello';
var w = 'World';
var hw = h+w
return (hw);
}
var test = test();
alert(test);
Это будет предупреждать "HelloWorld". (Если вам нужно место там, вы должны использовать var hw = h+" "+w
вместо этого.
Если вам нужно разделить две переменные, вы можете поместить их в массив следующим образом:
function test(){
var h = "Hello";
var w = "World";
var hw=[h,w];
return hw;
}
var test = test();
alert(test);
Это позволяет сохранять значения h
и w
индивидуально как test[0]
и test[1]
соответственно. Тем не менее, alert (test) здесь отобразит "Hello, World" из-за того, как alert() обрабатывает массивы (т.е. Последовательно печатает список каждого элемента в массиве). Если вы хотите получить тот же результат, что и ваш пример кода, вам нужно использовать что-то вроде join()
. join()
будет строить строку из массива, она принимает один аргумент, который служит разделителем между элементами. Чтобы воспроизвести два предупреждения из моего первого примера, вам нужно будет использовать alert(test.join(""))
и alert(test.join(" ")
, соответственно.
Мой пример можно немного сократить, пропустив создание переменной hw
и просто вернув массив напрямую. В этом случае test() будет выглядеть так:
function test(){
var h="Hello";
var w="World";
return [h, w];
}
Это также можно сделать как объект с return { h : h, w : w };
, и в этом случае вы будете обращаться к отдельным переменным как test.h и test.w, соответственно.