需要澄清以下代码。
我记得,有时候返回Utilities.jsonStringify()没有在JSON对象中保存函数。但是现在他们将它保存为字符串(“resultFn”:“\ n nfunction(pageNum,pageSize,filter){\ n return [{a:\”abc1 \“,b:\”bcd1 \“},{a: \“abc2 \”,b:\“bcd2 \”},{a:\“abc3 \”,b:\“bcd3 \”},{a:\“abc4 \”,b:\“bcd4 \”} ]; \ N})
使用eval(),可以恢复该函数(参见myFunction中的代码)。它对我来说很好,至少对于琐碎的例子。
问:AFAIK,功能序列化不在标准范围内。由于没有记录,我们可以依靠Google作为API合同吗?
我还可以添加 - 这将为我节省大量的代码:)
var fnResults = function(pageNum, pageSize, filter) {
return [
{ a: "abc1", b: "bcd1" },
{ a: "abc2", b: "bcd2" },
{ a: "abc3", b: "bcd3" },
{ a: "abc4", b: "bcd4" },
];
};
var TestConfig = {
pagerId: "TestId",
pageSize: 10,
widgetWidth: "15cm",
filterOptions: [],
resultFn: fnResults,
};
function myFunction() {
Logger.log(TestConfig.resultFn(1,2,3));
var s = Utilities.jsonStringify(TestConfig);
Logger.log(s);
var o = Utilities.jsonParse(s);
Logger.log(eval(o.resultFn)(1,2,3));
}
答案 0 :(得分:0)
这是一个错误,你不应该依赖它。