我有一个JavaScript函数的外部库,需要将它拉入我的服务器端Google Apps脚本项目中。我这样做主要是为了提高性能,同时也因为Google现在建议不要使用外部库。
在当前配置下,外部库中的函数通过
我该如何将这段代码引入我的项目,并使其内部细节与我的代码分离?有没有一种方法可以保留当前的命名约定我的项目,
库"MyLib",
在当前配置下,外部库中的函数通过
<Libname>.funcName()
引用,库中的任何全局变量也是如此,例如<Libname>.globA
。如果我只是将库复制到我的项目文件中,那么这些函数(和“全局变量”)将只被引用为funcName()
。我在我的项目中有数百个这样的引用,可能需要更改。这没关系;全局搜索和替换可以解决这个问题。但是,我担心“命名空间”问题……由于该库是第三方代码,我无法控制它,现在我遇到了名称冲突,因为库中的对象和函数与我的某些代码具有相同的名称。我该如何将这段代码引入我的项目,并使其内部细节与我的代码分离?有没有一种方法可以保留当前的命名约定
<Libname>.funcName()
?我认为JavaScript闭包是正确的解决方案,但我对它们不够了解。
我的项目,Code.gs
var globA = { key: 'aKey', value: 'valA' };
function myFunction() {
var a = MyLib.getValue();
Logger.log( JSON.stringify( a ) ); // { key: 'libKey', value: 'valLibA' };
}
function getValue() {
return globA;
}
库"MyLib",Code.gs
var globA = { key: 'libKey', value: 'valLibA' };
function getValue( ) {
return globA;
}