我有一个脚本,我将其用作库,将其加载到我需要的电子表格中。
当我将其添加到电子表格时,我定义了一个 onEdit 和 onLoad 函数,它们调用库的相应方法。
我需要使用该库的单个工作表来定义一个应该可供库使用的全局变量,该变量可能未在工作表的单元格中设置。
我尝试设置
var previd = "myid";
在电子表格脚本的开头,但这似乎不能解决问题。
我该如何解决?
"全局作用域"在脚本之间不共享,它实际上是一个"脚本作用域"。
库函数所需的所有变量都必须作为参数传递给这些函数。如果您使用相同的参数进行许多函数调用,则应考虑将它们包装在object
中。像一些应用程序脚本内置函数有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();