gpt4 book ai didi

google-apps-script - GAS 中库的设计模式?

转载 作者:行者123 更新时间:2023-12-04 05:22:15 29 4
gpt4 key购买 nike

一段时间以来,我一直在尝试找出编写 GAS 库的最佳方法,但我很难弄清楚。我阅读了 Douglas Crockford 的 - Javascript: The good parts,我正在尝试在 GAS 中实现这些类(class)。每个导入的库都会为您的项目添加全局变量(ScriptModule 类型),所以the modular design pattern似乎是一个不错的起点。借用我链接到这种模式的文章可能如下所示:

var MODULE = (function () {
var my = {},
privateVariable = 1;

function privateMethod() {
// ...
}

my.moduleProperty = 1;
my.moduleMethod = function () {
// ...
};

return my;
}());

然后可以像这样调用这个模块:
var module = LibName.MODULE;
var property = module.moduleProperty; // 1
var method = module.moduleMethod; // ...

据我所知,最好尽可能少地使用全局变量,因此一般建议似乎是将所有内容保存在一个全局变量中。所以命名约定应该看起来像这样:LibName.PROJECT_NAME,其中项目名称是你的单个全局变量的名称,它包含一个包含其他所有内容的模块。

我的目标是设计安全、不冲突的库。我使用这种设计模式是否正确?有没有人为 GAS 库开发了自己的健壮设计模式?

最佳答案

当您在 GAS 中将脚本作为库导入时,已经为其创建了一个新的“命名空间”,因此您自己创建另一个脚本没有必要也没有好处。你必须像你一样“尊重”它:

//there's no purpose for this
var module = LibName.MODULE;
var method = module.method;

//comparing if you write code directly on the library
var method1 = LibName.method1;

GAS 不是客户端 javascript,您学到的大部分内容并不真正适用于 Apps Script,例如没有 DOM、没有命名空间冲突、没有浏览器兼容性问题等。

顺便说一句,我认为这种对象嵌套结构甚至不适用于 Apps 脚本库。

关于google-apps-script - GAS 中库的设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13575942/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com