电子表格脚本和脚本库之间的可变范围

Lau*_*ent 2 global-variables google-apps-script

我有一个脚本,我用它作为一个库加载到我需要的电子表格中.

当我将它添加到电子表格时,我定义了一个调用库的相应方法的onEdit和onLoad函数.

我需要使用库的单个工作表来定义应该可供库使用的全局变量,该变量可能不在工作表的单元格中设置.

我尝试过设置

var previd = "myid";
Run Code Online (Sandbox Code Playgroud)

在电子表格脚本的开头,但似乎没有做到这一点.

我怎么解决这个问题?

问候.

Hen*_*reu 6

脚本之间不共享"全局范围",它实际上是一个"脚本范围".

库函数所需的所有变量必须作为参数传递给这些函数.如果使用相同的参数调用许多函数,则应考虑将它们包装在一个中object.一些Google Apps脚本的内置功能optArguments.

您可能还在setParameters库上有一个函数来传递这些变量一次(每个运行时)并使它们可用于下一个库调用.像这样的东西:

//on the library script
var clientParams = null;
function setParameters(parameters) { clientParams = parameters; }
function exampleFunc() { return clientParams.previd; }


//on your client script
library.setParameters({previd:'myid', otherParam:'example'});

//then you can call
library.exampleFunc();
Run Code Online (Sandbox Code Playgroud)