到处寻找这个,但没有真正的运气。
我希望使用 Google Apps 脚本将一个函数调用到另一个函数中。这两个函数都在当前项目中,但当我这样做时,我调用的函数没有被拉出,因为变量没有在两个函数之间链接
我希望调用的函数名为“getDates
”,其中包含变量“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 语句,因此它隐式返回 undefined。作为副作用,它声明了两个变量,然后在函数完成时垃圾收集它们。
您想要向 getDates()
函数 returnyear;
添加一行,并将其分配给 one()
中的变量
在函数终止后访问函数内变量的唯一方法是让该函数 (getDates()
) 返回一个函数。然后,该函数将包含包含函数的环境,并且即使在该函数终止后也可以访问其变量。这称为 closure但对你的情况来说不是很有用。
关于javascript - 在 Google Apps 脚本中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987248/