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

如何实现类似a.b.c()的多层级嵌套子函数调用结构

嵌套对象方法调用(a.b.c())实现方案

你提到的a.b.c()调用形式的标准称呼是嵌套对象方法调用,核心是通过层级挂载的对象结构,让顶层对象的属性本身也是持有下级属性/方法的对象,最终实现层级访问调用。

基础实现逻辑

不管哪种编程语言,实现该调用形式的核心逻辑一致:

  • 顶层变量a为对象实例
  • a的属性b也为对象实例
  • b对象下挂载名为c的可执行方法

常见语言实现示例

JavaScript 实现

字面量直接声明(适合简单场景)

const a = {
  b: {
    c: () => {
      console.log('c方法执行成功')
    }
  }
}

// 调用测试
a.b.c()

面向对象写法(适合复杂业务扩展)

class ModuleB {
  c() {
    return '返回值来自c方法'
  }
}

class ModuleA {
  constructor() {
    // 实例化B模块作为自身属性
    this.b = new ModuleB()
  }
}

const a = new ModuleA()
console.log(a.b.c())

Python 实现

class ModuleB:
    def c(self):
        return "c方法执行完成"

class ModuleA:
    def __init__(self):
        self.b = ModuleB()

a = ModuleA()
print(a.b.c())

扩展:链式方法调用

如果你需要的是a().b().c()这种连续函数调用形式,叫做链式调用,实现方法是每个方法执行完成后返回实例本身即可,示例如下:

// JS链式调用示例
class Calculator {
  constructor() {
    this.count = 0
  }
  add(num) {
    this.count += num
    return this // 返回实例,支持后续方法调用
  }
  minus(num) {
    this.count -= num
    return this
  }
  getResult() {
    return this.count
  }
}

// 调用示例
const result = new Calculator().add(5).minus(2).getResult() // 结果为3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:15:05