Google Script同一执行中两次调用函数触发TypeError的问题求助
问题原因及解决办法
错误原因
问题出在hello函数的返回语句return hello = 'hello';:
- 第一次调用
hello()时,这条语句会把全局作用域下的hello变量(原本是函数)直接覆盖成字符串'hello'。 - 调用完成后,
hello已经从函数类型变成了字符串类型,第二次再尝试用hello()的方式调用它,自然会抛出TypeError: hello is not a function的错误。
解决办法
方案1:使用局部变量返回结果
通过局部变量存储返回值,避免覆盖全局的函数名:
function hello() { const msg = 'hello'; return msg; } function testHello() { Logger.log(hello()); Logger.log(hello()); }
方案2:直接返回目标字符串(最简洁)
如果不需要额外逻辑,直接返回字符串即可:
function hello() { return 'hello'; } function testHello() { Logger.log(hello()); Logger.log(hello()); }
内容的提问来源于stack exchange,提问作者Juan
相关产品推荐
相关产品推荐

