You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Script库中实现子函数嵌套调用?

实现Google Script库的嵌套/链式函数调用

要实现你需要的嵌套调用方式,有两种常见方案,取决于你想要的是静态嵌套调用(myLibrary.myFunction.subFunction())还是链式调用(myLibrary.myFunction().subFunction()),以下是具体实现:

方案1:静态嵌套调用(无需执行父函数即可调用子函数)

这种方式下,myFunction本身是可执行函数,同时作为对象拥有subFunction属性方法。

修改库中的代码:

function myFunction() {
  Logger.log('hello');
}

// 给myFunction函数对象添加subFunction方法
myFunction.subFunction = function() {
  Logger.log('world');
};

调用示例:

  • 执行父函数:myLibrary.myFunction() → 日志输出 hello
  • 直接调用子函数:myLibrary.myFunction.subFunction() → 日志输出 world
  • 若想调用子函数时同时输出hello world,可以修改subFunction:
myFunction.subFunction = function() {
  myFunction(); // 先执行父函数
  Logger.log('world');
};

方案2:链式调用(执行父函数后链式调用子函数)

这种方式下,父函数执行后返回包含子函数的对象,支持myLibrary.myFunction().subFunction()的链式写法,适合按顺序执行的场景。

修改库中的代码:

function myFunction() {
  Logger.log('hello');
  
  // 返回包含subFunction的对象,实现链式调用
  return {
    subFunction: function() {
      Logger.log('world');
    }
  };
}

调用示例:
myLibrary.myFunction().subFunction() → 日志依次输出 hello 和 world

你原代码的错误原因

function myFunction.subFunction()是无效的JavaScript语法,不能直接通过这种方式定义函数的子函数。必须通过给函数对象添加属性方法(静态嵌套)或者返回包含子函数的对象(链式调用)的方式实现嵌套调用逻辑。

内容的提问来源于stack exchange,提问作者user20472970

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:12:47