在 Google Apps 脚本中调用函数

Calling a function in Google Apps Script

本文关键字:调用 函数 脚本 Google Apps      更新时间:2023-09-26

处寻找这个,没有真正的运气。

我希望使用谷歌应用程序脚本将一个函数调用到另一个函数中。这两个函数都在当前项目中,但是当我这样做时,我调用的函数没有被拉动,因为变量没有在两个函数之间链接

我想调用的函数叫做'getDates',里面有变量'year'。但是,当我调用该函数时,脚本会调用" year",它返回未定义。

这是getDates函数:

  function getDates {
 var startDate = new Date(sheet.getRange("B1").getValue());
var year = startDate.getFullYear();}

我希望将此函数调用到以下内容:

    function one {
         getDates();
          var url = "https://(hidden url)" + year; 
        UrlFetchApp.fetch(url);
        var dataAll = JSON.parse(response.getContentText()); //
  var dataSet = dataAll;
  var rows = [],
      data;

  for (i = 0; i < Object.keys(dataSet).length; i++) { data = dataSet[Object.keys(dataSet)[i]]; rows.push([data.XXX]); }

  dataRange = sheet.getRange(7, 2, rows.length, 1); 
  dataRange.setValues(rows);
    }

Google Apps脚本和旧版本的JS通常使用功能范围,因此除非返回,否则函数中声明的任何值都无法通过其包含环境访问。

您的函数没有 return 语句,因此它隐式返回未定义的语句。作为副作用,它声明了两个变量,然后在函数完成后对其进行垃圾回收。

您想向getDates()函数return year;添加一行,并将其分配给one()中的变量

在函数

终止后访问函数内变量的唯一方法是让该函数(getDates())返回一个函数。然后,该函数将包含包含函数的环境,即使在该函数终止后也可以访问其变量。这称为闭包,但在您的情况下不是很有用。