JS - передача и возврат нескольких значений - PullRequest
1 голос
/ 10 января 2012

Я не могу вернуть несколько значений в выражении возврата JavaScript.Было бы полезно обернуть эти значения в объект js?или другое решение?

function buildSomething()


    var t = [];
    var x = [];
    var y = [];
    var h = [];

    var myValues = fnGetData(t,y,x,h);



function fnGetData(t,y,x,h) 
{

 //  do something 
 // return t,y,x,h

}   

Ответы [ 4 ]

1 голос
/ 10 января 2012

Использование объекта, вероятно, является лучшим выбором:

function getData(t, y, x, h) {
    // ...
    return {
        t: t,
        x: x,
        y: y,
        h: h
    };
} 

Затем вы можете получить доступ к любому значению возвращаемого объекта по имени.

1 голос
/ 10 января 2012

Если внимательно присмотреться к своему коду, похоже, что вы пытаетесь передать несколько значений в функцию.Использование объекта для этого является обычной идиомой в JavaScript.

var values = {
    t: t,
    x: x,
    y: y,
    h: h
};

Это также облегчает обработку данных по умолчанию

function fnGetData(data)  {
   data.t = data.t || [];
   data.x = data.x || ["default", "values"];
}

Я не уверен, используете ли вы jQueryили нет, но для этого есть и идиома jQuery:

function fnGetData(data)  {
   $.extend(data, {
      t: [],
      x: ["intial", "values"]
   });
}
0 голосов
/ 10 января 2012

Очень часто возвращают объект из функции, как предлагали другие. Я бы, наверное, пошел по этому пути. С объектом также легче иметь дело, и он с меньшей вероятностью загрязняет глобальную область.

Другой вариант, если вам нужно вызвать функцию, как в вашем примере, это вернуть массив. Возвращение массива может пригодиться, если вам нужно вызвать функцию с возвращенными значениями, используя Function.apply. Function.apply принимает массив и преобразует его в параметры функции.

Например:

someFunc.apply(this, [t,x,y,h]);
0 голосов
/ 10 января 2012

У вас есть выбор - вернуть их в виде массива или объекта, где объект является более логичным выбором, поскольку вы можете дать свойствам четкие имена, которые приведут к улучшению кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...