【发布时间】:2012-02-15 11:35:05
【问题描述】:
免责声明:我完全理解使用 eval 的风险/缺点,但这是一个我找不到其他方法的小众案例。
在 Google Apps 脚本中,仍然没有将脚本作为库导入的内置功能,因此许多工作表可以使用相同的代码;但是,是一个内置的工具,我可以从纯文本文件中导入文本。
这是评估代码:
var id = [The-docID-goes-here];
var code = DocsList.getFileById(id).getContentAsString();
var lib = eval(code);
Logger.log(lib.fetchDate());
这是我在外部文件中使用的一些示例代码:
{
fetchDate: function() {
var d = new Date();
var dateString = (d.getMonth() + 1) + "/" + d.getDate() + "/" + d.getFullYear();
return dateString;
}
}
我的目标是将一个大对象文字(包含所有库代码)放到一个局部变量上,这样我就可以引用它的属性/函数,就像它们包含在自己的命名空间中一样。
【问题讨论】:
-
@AbePetrillo 可以直接读入对象文字并对其进行评估。如果是这样,怎么做?答案是肯定的;通过将对象包装在括号中,它可以被评估为匿名函数,该函数以可以分配给变量的方式返回对象文字。这是一种 hackish 解决方法,但我试图找到一种方法来导入 Google Apps 脚本。
标签: javascript import eval google-apps-script