问:为什么“1”工作正常,但“2”却出错。
对于这个问题,这个答案怎么样?请将此视为几个可能答案之一。
实验:
在 Google Apps 脚本中,似乎当可以使用脚本编辑器识别该函数并且可以在以下位置查看该函数时this
,该函数可以直接运行。用于检查该函数是否包含在this
,可以使用以下脚本。
示例脚本:
function myFunction() {
for (var i in this) {
if (i == "hoge") {
Logger.log("%s, %s", i, typeof this[i])
}
}
}
About var hoge = function hoge(x){return x;};
在这种情况下,函数hoge
可以在脚本编辑器中看到,并且该功能可以由脚本编辑器直接运行。而且,上面的脚本返回hoge, function
.
About var hoge = function (x){return x;};
在这种情况下,函数hoge
当上面的脚本返回时,在脚本编辑器中无法看到hoge, function
. And hoge
无法直接运行,因为在脚本编辑器中看不到它。
当这个函数的hoge
从其他函数运行,脚本有效。
About var hogeNot = function hoge(x){return x;};
在这种情况下,函数hogeNot
在脚本编辑器中看不到。但其功能是hoge
可以在脚本编辑器中看到。当函数为hoge
通过脚本编辑器运行,会出现找不到函数之类的错误。在上面的脚本中,i == "hoge"
总是false
。但当i == "hogeNot"
用于 if 语句,hogeNot, function
被返回。
当这个函数的hogeNot
从其他函数运行,脚本有效。但是当这个函数hoge
从其他函数运行时,会发生错误。
Result:
从以上情况来看,认为为了运行google.script.run
,需要能够在脚本编辑器中直接运行该函数。我想这可能是Google方面的规范。
如果我误解了你的问题并且这不是你想要的方向,我很抱歉。