我可以使用全局变量而不是传递参数吗



我有一个Javascript项目,其中一个脚本接收一个参数。与其在整个函数链中传递这些参数,我可以将其声明为全局参数,并让其他函数引用它吗?

如果项目中有很多脚本怎么办?这些能以某种方式访问这个全局变量吗?我只需要让它持续到执行的持续时间。

请注意,此项目可以由不同的用户同时调用。由于它有时是通过网络应用程序调用的,我不确定用户缓存是否合适。

谢谢!

不要为应用程序脚本服务使用全局变量。例如:

var SS_SERVICE = SpreadsheetApp;

最近,这开始导致一条错误消息。如果发生变化,请在此时编辑答案。

此外,如果不使用var关键字来定义变量,则它会自动放入全局范围。因此,如果您错误地将var放在变量前面,那么代码仍然可以运行并且可以工作,但您可能不知道代码实际发生了什么。如果您在不同的函数中定义并使用了另一个同名变量,并且错误地将该变量设为全局变量,并且一个函数调用了另一函数,那么可能会与变量值发生冲突。

所有应用程序脚本.gs文件都可以访问所有其他.gs脚本文件。脚本文件之间不需要任何链接,也不需要包含在其他脚本文件中。您可以从另一个脚本文件中调用一个函数,只要它在同一个项目中即可。

在一个文件中定义的全局变量可供其他文件访问。

您不希望对特定于该用户的信息使用公共缓存。但也有私人缓存。缓存会过期,所以除非是为了计时用户登录的时间,否则你可能不想使用它

如果您有很多代码,并且出于有序结构和访问多个其他函数的原因创建函数,那么传递数据可能是不可取的。所以,是的,你可以使用全局变量。使用全局变量被一些人认为是"坏做法",但随后我们就进入了个人观点。

相关内容

最新更新