我正在尝试在几个脚本文件中组织我的电子表格代码。在脚本编辑器中,我可以根据需要创建尽可能多的* .gs文件,但我无法弄清楚如何访问将在另一个脚本中定义的代码。
我希望实现的简单示例:
Code.gs:
function onEdit(){
myFunctionFromLibrary_gs();
}
Library.gs:
function myFunctionFromLibrary_gs(){
Browser.msgBox("hi there");
}
onEdit()显然是由Trigger调用的。 如果不进行修改,将导致运行时错误,说明
myFunctionFromLibrary_gs TypeError:不是函数,未定义。
那么我怎样才能做到这一点,或者目前不支持?
提前帮助你。
答案 0 :(得分:11)
是的,这是可能的。
- 您不仅限于单个服务器Code.gs文件。您可以跨多个文件传播服务器代码,以便于开发。 所有服务器文件都加载到同一个全局命名空间 ,因此如果要提供安全封装,请使用JavaScript类。
醇>
答案 1 :(得分:7)
我不知道_gs
后缀对谷歌来说意味着什么,但如果没有它(参见下面的代码),代码就可以了。
file1.gs:
function onEdit(){
myFunctionFromLibrary();
}
file2.gs
function myFunctionFromLibrary(){
Browser.msgBox("hi there");
}
答案 2 :(得分:2)
我知道这是一个老问题,但我发现它正在寻找类似的任务,并且碰巧在我的同一搜索中找到答案。 来自https://developers.google.com/apps-script/guide_libraries#writingLibrary的文档:
如果您希望脚本的一个或多个方法对库用户不可见(也不可用),则可以使用下划线结束方法的名称。例如,myPrivateMethod _()。
虽然你的函数在下划线中不是END,但它可能在其他地方具有特殊意义,或者_gs后缀也可能具有特殊含义(特别是在给出相同的文件名后缀的情况下)。