这个答案怎么样?请认为这只是几个可能的答案之一。
在 Javascript 中,使用null
ofbind(null, str)
时this
使用。在 Google Apps 脚本中,当null
用于时bind(null, str)
,会出现“无法将 null 转换为对象”之类的错误。我认为这可能是谷歌方面的规范。我不确定这是否在未来的更新中被修改。因此,作为当前的解决方法,使用this
而不是如何null
?或者如果你想在严格模式下使用bind(null, str)
like ,使用而不是like怎么样?null
{}
null
bind({}, str)
顺便说一句,我认为test();
可以删除脚本的最后一行。因为在您的情况下,当test()
在脚本编辑器中运行时,在最后一行test()
运行 2 次。在最后一行作为全局运行。test();
test();
从上面的情况来看,当你的脚本被修改时,下面的修改呢?
修改后的脚本:
function print(str, num) {
Logger.log(str + ": " + num);
}
function test() {
var array = [1,2,3];
var str = "Stam";
array.forEach(print.bind(this, str));
}
或者您也可以test()
按如下方式修改您的脚本。以下test()
检索与上述结果相同的结果。
function test() {
var array = [1,2,3];
var str = "Stam";
array.forEach(function(e) {print(str, e)});
}
结果:
在脚本编辑器中运行test()
时,您可以在日志中看到以下结果。
Stam: 1
Stam: 2
Stam: 3
参考:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。