如何将变量传递给函数

时间:2018-08-19 12:03:11

标签: javascript google-apps-script

我觉得我从根本上误解了这项工作...

我要做的就是弄清楚如何将一个函数中的变量传递给另一个函数,对is做些什么,然后返回结果。那应该很简单,对吧? 我创建了两个非常简单的函数进行试验。这就是我所拥有的:

function startFunction() {
 var variable = 1
 adding(variable)
 logger.log(variable2)
 }

function adding() {
 var variable2 = variable + 1
 return variable2
 }

但是第二个函数(加法)产生一个“未定义的”变量”错误。因此,我显然误会了此...任何帮助吗?

3 个答案:

答案 0 :(得分:3)

总结注释和其他答案(@Shades除外,它是同时发掘的……实际上早7分钟了;)),您的代码需要显式定义每个函数(函数范围)中的每个变量,这意味着您可以在许多函数中使用相同的变量名而不会受到任何干扰(例如,一个人经常在不同功能中在var n中使用for loops,显然和令人高兴的是,它们n并不相同)。

您的代码应该是这样的:(阅读代码中的注释)

function startFunction() {
  var variable = 1;
  var variable2 = adding(variable); // variable is the function parameter
  Logger.log(variable2); // Capital matters
 }

function adding(v) { // using v as parameter 
 var variable2 = v + 1 ; // v has the value of variable in startFunction
 return variable2;
}

答案 1 :(得分:1)

您似乎忘记了在功能中添加功能参数。函数参数初始化函数将采用的变量。看看这个:

function adding(Number) {}

向该函数传递参数(例如,adding(5),adding(variable)或其他任何参数)时,会将变量“ number”初始化为该值。

function startFunction() {
 var variable = 1
 var logValue = adding(variable) // Pass the value of variable to adding()
 logger.log(logValue)
 }

function adding(Number) { // Number is now set to the value of variable, or 1
 var variable2 = Number + 1 
 return variable2
 } // variable2 is now deleted as the function is finished running.
   // Note: This would not be the case if variable2 were global, in which case
   // variable2 would now have the value of Number + 1

请注意,现在有一个变量将adding()的返回值存储到其中。现在记录此值。确保阅读可变范围。请记住,一旦函数完成,它声明的所有变量都将被删除。因此,如果您在函数中定义变量,则除非将其定义为 global 变量,否则不能在其他任何地方使用它。正如某些人所说,您可能也必须大写Logger。但是我个人从未使用过记录器,也不知道。

编码愉快!

答案 2 :(得分:0)

您应该以分号“;”结束每个命令。而“ logger.log”应为“ Logger.log”。在javascript中,所有内容均区分大小写。

尝试var变量2 =添加(变量);

使用var会创建一个局部变量,如techowch所述,该变量在特定范围内

变量在startFunction的范围内,其值传递给加法函数。 variable2仅在函数添加范围内,其中将1的值添加到variable的值。您返回variable2的值,但是没有变量接收该值。您可以使用Logger.log(adding(variable))查看返回的值。但它不能在startFunction中使用。