如何在函数之间传递多个变量

Jul*_*var 0 javascript

这个问题是相关的,但与 javascript 不同:在另一个函数中获取函数变量的值 & 如何在 javascript 中的函数之间传递变量

一段时间以来,我一直想知道如何将变量从一个函数传递到另一个函数,可以在上面找到答案。但更大的问题是如何传递多个变量,感觉上面找到的答案的语法可能变得过于复杂,最终变得不可读。

不要介意我在示例中所做的添加和提醒。这是一个虚拟示例,如下面的示例所述。这个问题目的在下面的段落中用粗体明确说明

所以这是我的问题,如何将多个变量从一个函数传递到另一个函数,例如:

function definingVars() {
  var one = 1;
  var two = 2;
  var three = 3;
  var four = 4;
  var five = 5;
  var six = 6;
  var seven =  7;
  var eight = 8;
  var nine = 9;
  var ten = 10;
}

function addingUp() {
  definingVars();
  alert("Alerting var total");
  var total = one + two + three + four + five + six + seven + eight + nine;
  alert(total);
  alert("Alerting var ten");
  alert(ten);
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是解决这个问题的正确方法。但我想在这里做一个假的例子。

Ori*_*iol 5

返回一个对象,其属性包含所需的值:

function definingVars() {
  return {
    one: 1,   two: 2,     three: 3,   four: 4,   five: 5,
    six: 6,   seven: 7,   eight: 8,   nine: 9,   ten: 10
  };
}
function addingUp() {
  var data = definingVars();
  return data.one + data.two + data.three + data.four + data.five
         + data.six + data.seven + data.eight + data.nine;
}
Run Code Online (Sandbox Code Playgroud)

如果你想避免重复data,你可以使用with,但请注意它是缓慢的,不好的做法,并且在严格模式下是不允许的:

function addingUp() {
  with(definingVars()) {
    return one + two + three + four + five + six + seven + eight + nine;
  }
}
Run Code Online (Sandbox Code Playgroud)