如何实现类似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
相关产品推荐
相关产品推荐

